91 Commits

Author SHA1 Message Date
Mathieu Parent
8921675668 Skinny: switch to new cache_db abstraction 2010-08-24 23:35:52 +02:00
Mathieu Parent
2aac00ef81 Skinny: MODSKINNY-14 The Cisco 7910 phone is no tone when I try to make a call and hang up.
Thanks to Sergio
2010-08-24 22:38:57 +02:00
Mathieu Parent
59e197584c Skinny: more on device types
- print device type name when doing skinny status profile internal device ...
- add 7962 and 7965
- use base10 number
2010-07-28 22:17:54 +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
0a04ecb8dd Skinny: ring tone on dialing side 2010-07-28 00:31:52 +02:00
Mathieu Parent
db1289dfaf Skinny: avoid crash with autocompletion when skinny is unloaded 2010-07-22 21:04:18 +02:00
Mathieu Parent
5e07bd336c Skinny: hangup and hold calls in PROCEED state
as those CONNECTED
2010-07-20 22:43:56 +02:00
Mathieu Parent
20194286a4 Skinny: correct early media and answer
- SWITCH_MESSAGE_INDICATE_DISPLAY was missing a "break" statement
- handle not responding device (cancels early media or answer)
- don't send messages when listener is not ready (fix rare crashes)
2010-06-25 18:25:12 +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
2629a570c7 Skinny: MWI improvement: allow domain name <> profile name 2010-06-16 22:42:15 +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
2fc09235b7 Skinny: split event handlers 2010-06-10 08:35:05 +02:00
Anthony Minessale
bc6334a610 FSCORE-617 2010-06-07 16:47:35 -05:00
Mathieu Parent
f1b636aaf7 Skinny: fix crash with outgoing channel without remote session 2010-05-21 10:18:22 +02:00
Mathieu Parent
9682599b6b Skinny: fix unhold 2010-05-21 02:22:32 +02:00
Mathieu Parent
14fee6c798 Skinny: set BOND variable early to have call info during ring
This is hackish
2010-05-21 02:09:09 +02:00
Mathieu Parent
bfb6a8b1f5 Skinny: Initial Windows support
Thanks to Peter Olsson

Closes: MODSKINNY-3
2010-05-20 23:19:10 +02:00
Mathieu Parent
a1f9cc1efa Skinny: pass remote session to ring_lines because BOND is not set yet 2010-05-20 18:45:25 +02:00
Mathieu Parent
d172e9febb Skinny: send the call state when requested
This solves incorrect display on the phone.

BUT: this creates a delta because the SQL value and the value known by
the phone. I hope this doesn't break other things.

(NB: the original problem here was the unability to do an UPDATE inside
a SELECT callback)
2010-05-20 17:29:25 +02:00
Mathieu Parent
924683a73c Skinny: handle SWITCH_MESSAGE_INDICATE_DISPLAY
- send SWITCH_MESSAGE_INDICATE_DISPLAY when ringing (after knowing calle
  info
- send call info when receiving SWITCH_MESSAGE_INDICATE_DISPLAY

The send SWITCH_MESSAGE_INDICATE_DISPLAY part doesn't work yet, because
partner channel is locked (have to find out why)
2010-05-20 17:14:49 +02:00
Mathieu Parent
23b09b4593 Skinny: Correct state handling
- wait for media before marking channel as answered
- set effective_caller_{id,name} before sending call info
2010-05-20 16:34:38 +02:00
Mathieu Parent
8ec0b7f4c7 Skinny: fix redial button, and all nested "bridge" 2010-05-20 15:36:26 +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
0bc11afa73 Skinny: split out server part
And try to keep each file below 2000 lines
2010-05-18 10:49:01 +02:00
Mathieu Parent
51f1ad5072 Skinny: Send hangup cause to device (busy, unknown number) 2010-05-18 10:49:01 +02:00
Anthony Minessale
a5f7461ee2 fix null pointer deref code path 2010-05-05 11:01:32 -05: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
00b2622350 Skinny: initial transfer support
and some re-indentation
2010-04-16 11:59:58 +02:00
Mathieu Parent
93db4451d1 Skinny: fix previous commit, define current time on hangup 2010-04-15 11:11:05 +02:00
Mathieu Parent
befd41c829 SKinny: handle hold corner cases
- try to re-use existing OffHook session
- hold active lines before: newcall, resume
- allow endcall on: offHook, afterFirstDigit
- allow newcall on: connected, ringin
2010-04-09 18:02:14 +02:00
Mathieu Parent
a1952b8636 Skinny: implement hold/resume
Also rework a bit softkey sets
2010-04-09 16:12:58 +02:00
Mathieu Parent
adcb11f3d3 Skinny: fix calls without media
If party_id is 0, the phone will not properly release media
2010-04-09 11:13:22 +02:00
Mathieu Parent
c15e163b88 Skinny: avoid non-set profile name 2010-04-08 23:16:44 +02:00
Mathieu Parent
ca8ec66ed3 Skinny: avoid crash on shutdown
Because of uninstancied listener
2010-04-08 22:48:36 +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
9cf882566f Skinny: security
- Avoid writing outside of fields
- tab ident
2010-04-02 14:47:37 +02:00
Mathieu Parent
63f3948d83 Skinny:
- don't force session location (not needed)
- Correct Skinny-Station-Instance event header and log if profile or
  device is not found
2010-04-02 12:15:33 +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
b769233b76 Skinny: Split ou tables
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@17022 d0543943-73ff-0310-b7d9-9358b9ac24b2
2010-03-17 12:52:08 +00: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
adde57cb24 Skinny: handle UnregisterMessage and properly flush listener
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@16820 d0543943-73ff-0310-b7d9-9358b9ac24b2
2010-02-25 15:23:11 +00:00
Mathieu Parent
c84d664c6b Skinny: add send Reset/Restart
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@16819 d0543943-73ff-0310-b7d9-9358b9ac24b2
2010-02-25 14:34:43 +00:00
Mathieu Parent
32565f50f5 Skinny: previous commit was incomplete
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@16795 d0543943-73ff-0310-b7d9-9358b9ac24b2
2010-02-24 12:06:47 +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
9f870bd311 Skinny: API commands (autocompletion included!)
skinny profile <profile_name> device <device_name> send SetRingerMessage <ring_type> <ring_mode>
skinny profile <profile_name> device <device_name> send SetLampMessage <stimulus> <instance> <lamp_mode>
skinny profile <profile_name> device <device_name> send SetSpeakerModeMessage <speaker_mode>
skinny profile <profile_name> device <device_name> send CallState <call_state> <line_instance> <call_id>

Also:
- Correct sended line displayname
- Re-use the line on SoftKey
- Handle Answer SoftKey

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@16793 d0543943-73ff-0310-b7d9-9358b9ac24b2
2010-02-24 12:06:25 +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