30 Commits

Author SHA1 Message Date
Mathieu Parent
0f7682a27c Skinny: don't crash when requesting an RTP port while the profile is listening on all ips
And store some more ip infos in the listener struct
2011-02-25 21:06:22 +01:00
Mathieu Parent
709c4e5f97 Skinny: Event skinny::xml_alarm 2010-12-19 22:16:40 +01:00
Mathieu Parent
25ddef504d Skinny: add support to DeviceToUser and UserToDevice messages 2010-09-24 01:55:54 +02:00
Mathieu Parent
9fc6b2087a Skinny: no need for heartbeat event to handle keepalive timeout 2010-09-23 19:51:14 +02:00
Mathieu Parent
ba3a6ad6c8 Skinny: Rename skinny-default-soft-key-set-set to skinny-soft-key-set-set 2010-09-04 10:14:22 +02:00
Mathieu Parent
07c3c94d7a Skinny: allow skinny-default-soft-key-set-set per device 2010-09-04 10:06:07 +02:00
Mathieu Parent
f5a6831ffc Skinny: allow configuration of softkeys via xml
- enhance conf/skinny_profiles/internal.xml
- Sanity checks
  + softKeySet id < 16
  + less than 16 buttons per softKeySet
  + at least the default soft-key-set to load the profile
  + at least one profile to load mod_skinny
- Lower some ERRORs to WARNINGs as they don't prevent module loading
- Default skinny_str2soft_key_event to 0
2010-09-04 09:35:43 +02:00
Mathieu Parent
461db7573e Skinny: Better IP change handling
- Respawn only if ip or port is changed
- Properly handle timeout
2010-09-03 23:34:19 +02:00
Mathieu Parent
a5cd2df89a Skinny: Handle network-address-change trap event
- add auto-restart param to each profile (if true, ip is automaticaly changed)
- some cleaning (unused args in flush_listener, better logs)
2010-09-03 00:09:10 +02:00
Mathieu Parent
8921675668 Skinny: switch to new cache_db abstraction 2010-08-24 23:35:52 +02:00
Mathieu Parent
7eec05736a Skinny: more API
- allow to set most settings at runtime (all but ip, port and odbc-dsn)
- little rewrite of the config load
- don't print Keepalive and KeepaliveAck messages unless profile debug is >=10
- print usage when incorrect parameters
2010-07-28 19:42:59 +02:00
Mathieu Parent
5017869399 Skinny: handle early media
See MODSKINNY-8 (switch_core_io.c:121
SKINNY/internal/SEP002699438FB6:0/1 has no read codec when using early
media)
2010-06-17 07:44:33 +02:00
Mathieu Parent
df92a3ca07 Skinny: Remove unused flags 2010-06-17 07:05:28 +02:00
Mathieu Parent
1d7d014612 Skinny: Basic MWI
With following limitations:
- only first line is handled
- only works well when domain name = profile name
2010-06-16 22:42:15 +02:00
Mathieu Parent
96a630e454 Skinny: fix compilation on OS X
declaring some variables "extern" thanks to Peter Olsson

Fix MODSKINNY-6: Build still fails on OS X (even after last changes)
2010-05-26 10:40:38 +02:00
Mathieu Parent
8cc89ab042 Skinny: rewrite of the skinny state machine
- for incoming calls, go CS_ROUTING only when number is dialed.
  CS_HIBERNATE before
- start media when both side have answered

Also:
- send tone for UNALLOCATED_NUMBER and USER_BUSY
- if channel variables are not sufficent to set call info, ask the
  partner channel
2010-05-20 15:16:08 +02:00
Mathieu Parent
dcb9c0ca52 Skinny: Initial patterns dialplan implementation.
More info on mod_skinny wiki page
2010-04-20 22:40:21 +02:00
Mathieu Parent
03f91afd34 Skinny: VersionMessage per device type 2010-04-16 18:01:19 +02:00
Mathieu Parent
deb2277936 Skinny: allow firmware version per device 2010-04-16 15:16:27 +02:00
Mathieu Parent
00b2622350 Skinny: initial transfer support
and some re-indentation
2010-04-16 11:59:58 +02:00
Mathieu Parent
58595bdaec Skinny: solve deadlocks and more
- Solve deadlock:
  + associate all skinny_profile_find_session with the corresponding
    switch_core_session_rwunlock
  + lock the newly created session in skinny_create_ingoing_session
  + enhance rwlocks debugging
- Shared lines:
  + Inform shared lines on answering
  + Answering line has info after other shared lines
2010-04-08 22:38:24 +02:00
Mathieu Parent
54e73c774f Skinny: Check for socket to see if listener is alive
also, use tab to indent
2010-04-01 19:50:55 +02:00
Mathieu Parent
59bb764ff9 Skinny: avoid some crashes
- move api to own file
- really allow several profiles (one thread per profile)
- global pool
- pool per profile
- Remove unused globals.calls
- Check for closed listener before sending data
- use mutex for hashes
2010-04-01 19:41:48 +02:00
Mathieu Parent
b8ac781c05 Skinny: Implement shared lines and more
- Shared lines (same line on several phones)
  + Active lines stored in db
- Separate SQL mutex per profile
- New event skinny::call_state
- Clean port_message
- More protocol understanding:
  + stimulus may have call_id
  + off_hook may have call_id
  + set_ringer may have call_id and line_instance
  + New DisplayPriNotifyMessage
- Use Cisco terms for Call state
  + Congestion -> LineInUse
  + CallRemoteMultiline -> InUseRemotely
- Add line_instance to Lines table (relative position contrary to
  absolute position)
- Less assertions as FS already does some
2010-04-01 14:08:12 +02:00
Mathieu Parent
3731c4ab91 Skinny:
- allow several instances of the same device on different sockets
- move lines to table skinny_lines, as they need more params
- various small changes



git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@16959 d0543943-73ff-0310-b7d9-9358b9ac24b2
2010-03-10 13:49:53 +00:00
Mathieu Parent
1b988b2267 Skinny: config cleaning and refactorisation
- removed unused globals: codecèprefs, codec_master, codec_rates
- moved global debug to profile
- store button type as id in DB (avoid case-sensitivity problem)
-

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@16794 d0543943-73ff-0310-b7d9-9358b9ac24b2
2010-02-24 12:06:36 +00:00
Mathieu Parent
139291f917 Skinny: Rework of buttons
- Refactorize line/speed-dial info (with getters)
- Set calling/called party when known
- Don't recreate session on existing
- Lower some debug messages (SQL, messages send/received)

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@16790 d0543943-73ff-0310-b7d9-9358b9ac24b2
2010-02-24 12:05:56 +00:00
Mathieu Parent
900c50fd91 Skinny: Corrections
- Construct call_id based on simple increment per profile
- close RTP only if needed
- now hanging up while there is no other leg works
- better steps: create_session -> process_dest -> answer

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@16789 d0543943-73ff-0310-b7d9-9358b9ac24b2
2010-02-24 12:05:45 +00:00
Mathieu Parent
afbab7bc7b Skinny: Line state
Avoid the use of TFLAG_WAITING_DEST an replace by a line_state corresponding to the softkey events

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@16787 d0543943-73ff-0310-b7d9-9358b9ac24b2
2010-02-24 12:05:26 +00:00
Mathieu Parent
a977bda2e9 Skinny: Split the code
- mod_skinny.c: module, profile, listener, channels
- skinny_protocol.c: skinny messages

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@16784 d0543943-73ff-0310-b7d9-9358b9ac24b2
2010-02-24 12:04:56 +00:00