Browse code

apps/dsm/mod_sbc: added message_filter and message_list profile variables

Juha Heinanen authored on 22/05/2014 05:23:56
Showing 1 changed files
... ...
@@ -154,19 +154,20 @@ sbc.isDisconnected() / sbc.isNoReply() / sbc.isRinging() / sbc.isConnected() / s
154 154
 Actions
155 155
 -------
156 156
 sbc.profileSet(profile_variable, value)    - set SBC profile options
157
-    *** only meaningful in 'start' event (later, most profile options are not used any more) *** 
158
-    profile_variables: To, RURI, FROM, Call-ID, next_hop, RURI_host, refuse_with,
159
-    outbound_proxy, force_outbound_proxy = "yes" | "no,
157
+    *** only meaningful in 'start' event (later, most profile options
158
+    are not used any more) *** 
159
+    profile_variables: To, RURI, FROM, Call-ID, next_hop, RURI_host,
160
+    refuse_with, outbound_proxy, force_outbound_proxy = "yes" | "no,
160 161
     aleg_outbound_proxy, aleg_force_outbound_proxy = "yes" | "no,
161
-    next_hop_1st_req = "yes" | "no,  patch_ruri_next_hop = "yes" | "no,
162
-    aleg_next_hop,
163
-    append_headers, append_headers_req, 
164
-    rtprelay_enabled  = "yes" | "no,
165
-      force_symmetric_rtp  = "yes" | "no, aleg_force_symmetric_rtp  = "yes" | "no,
166
-      msgflags_symmetric_rtp = "yes" | "no,
167
-      rtprelay_transparent_seqno = "yes" | "no, rtprelay_transparent_ssrc = "yes" | "no, 
168
-      rtprelay_interface, aleg_rtprelay_interface,
169
-      rtprelay_dtmf_detection = "yes" | "no, rtprelay_dtmf_filtering = "yes" | "no
162
+    next_hop_1st_req = "yes" | "no, patch_ruri_next_hop = "yes" | "no,
163
+    aleg_next_hop, append_headers, append_headers_req, 
164
+    rtprelay_enabled  = "yes" | "no, force_symmetric_rtp  = "yes" | "no,
165
+    aleg_force_symmetric_rtp  = "yes" | "no, msgflags_symmetric_rtp =
166
+    "yes" | "no, rtprelay_transparent_seqno = "yes" | "no,
167
+    rtprelay_transparent_ssrc = "yes" | "no,
168
+    rtprelay_interface, aleg_rtprelay_interface,
169
+    rtprelay_dtmf_detection = "yes" | "no, rtprelay_dtmf_filtering =
170
+    "yes" | "no, message_filter, message_list
170 171
 
171 172
 sbc.stopCall(string cause)         - stop both call legs
172 173
 
Browse code

sbc:dsm: conditions for call leg status

Stefan Sayer authored on 11/03/2014 14:38:57
Showing 1 changed files
... ...
@@ -144,10 +144,13 @@ Conditions
144 144
 ----------
145 145
 call leg events (don't work in non-call SBC DSMs)
146 146
 
147
-sbc.isALeg
147
+sbc.isALeg   - is A leg of the call
148 148
 
149
-sbc.isOnHold
149
+sbc.isOnHold -  is on hold
150 150
 
151
+sbc.isDisconnected() / sbc.isNoReply() / sbc.isRinging() / sbc.isConnected() / sbc.isDisconnecting()
152
+  call leg status
153
+ 
151 154
 Actions
152 155
 -------
153 156
 sbc.profileSet(profile_variable, value)    - set SBC profile options
... ...
@@ -177,7 +180,8 @@ sbc.putOnHold()                    - put this call leg on hold
177 180
 
178 181
 sbc.resumeHeld()                   - resume from hold
179 182
 
180
-sbc.getSBCCallStatus(varname)      - get sbc call status into $varname
183
+sbc.getSBCCallStatus(varname)      - get sbc call status into $varname:
184
+                                     Disconnected/NoReply/Ringing/Connected/Disconnecting/Unknown
181 185
 
182 186
 sbc.relayReliableEvent(paramlist, processed_paramlist, unprocessed_paramlist) - relay reliable Event
183 187
   if processed (#processed=true in other leg), event is sent back with processed_paramlist parameters,
Browse code

sbc:dsm: rtp_interface for addCallee

Stefan Sayer authored on 22/12/2013 00:07:42
Showing 1 changed files
... ...
@@ -214,6 +214,8 @@ sbc.addCallee(string mode, string varname)
214 214
 
215 215
          $varname.outbound_proxy - outbound proxy in new call
216 216
          $varname.outbound_interface - outbound interface used for new call
217
+         $varname.rtp_interface - rtp interface used for new call
218
+
217 219
 
218 220
          $varname.transparent_dlg_id - "yes" or "no": use transparent dlg IDs for new call; default no
219 221
                                         - "no" very much advised if current leg was connected before!
Browse code

sbc:dsm: outbound_interface for addCallee new call mode

Stefan Sayer authored on 21/12/2013 19:41:06
Showing 1 changed files
... ...
@@ -213,8 +213,7 @@ sbc.addCallee(string mode, string varname)
213 213
          $varname.next_hop_fixed      - fixed next hop
214 214
 
215 215
          $varname.outbound_proxy - outbound proxy in new call
216
-         $varname.outbound_proxy - outbound proxy in new call
217
-         $varname.outbound_proxy - outbound proxy in new call
216
+         $varname.outbound_interface - outbound interface used for new call
218 217
 
219 218
          $varname.transparent_dlg_id - "yes" or "no": use transparent dlg IDs for new call; default no
220 219
                                         - "no" very much advised if current leg was connected before!
Browse code

sbc:dsm: next_hop options for addCallee with new call mode

Stefan Sayer authored on 21/12/2013 18:23:38
Showing 1 changed files
... ...
@@ -207,6 +207,15 @@ sbc.addCallee(string mode, string varname)
207 207
          $varname.remote_party   - remote party (To) in new call
208 208
          $varname.hdrs           - headers in outgoing INVITE
209 209
          $varname.outbound_proxy - outbound proxy in new call
210
+         $varname.next_hop       - next hop
211
+         $varname.next_hop_1st_req    - next hop for 1st req, "true" or "false"
212
+         $varname.next_hop_patch_ruri - patch ruri with next hop, "true" or "false"
213
+         $varname.next_hop_fixed      - fixed next hop
214
+
215
+         $varname.outbound_proxy - outbound proxy in new call
216
+         $varname.outbound_proxy - outbound proxy in new call
217
+         $varname.outbound_proxy - outbound proxy in new call
218
+
210 219
          $varname.transparent_dlg_id - "yes" or "no": use transparent dlg IDs for new call; default no
211 220
                                         - "no" very much advised if current leg was connected before!
212 221
                                           otherwise local tag in current leg will be overwritten on reply
Browse code

dsm: add more clear debugging on transitions

Stefan Sayer authored on 17/12/2013 14:00:46
Showing 1 changed files
... ...
@@ -98,6 +98,8 @@ legStateChange
98 98
 BLegRefused
99 99
     Reply parameters (#sip_reason, #sip_code, ...)
100 100
 
101
+B2B.otherRequest, B2B.otherReply - see dsm_syntax.txt
102
+
101 103
 -- ----- hold related -------- 
102 104
 PutOnHold
103 105
 
Browse code

b/f:b2b: remember 'receiving' in AudioStreamData, to restore after re-init

also removed dsm sbc mute/unmute functions, as they need to use other proper functions

Stefan Sayer authored on 17/12/2013 13:18:37
Showing 1 changed files
... ...
@@ -226,8 +226,4 @@ sbc.addToMediaProcessor      - add sbc session to media processor (no playlist s
226 226
 
227 227
 sbc.removeFromMediaProcessor - remove sbc session from media processor
228 228
 
229
-sbc.pauseRtpStreams(bool pause_a, bool pause_b)     - pause A/B streams: drop received packets 
230
-sbc.resumeRtpStreams(bool resume_a, bool resume_b)  - resume A/B streams: process received packets 
231
-
232
-sbc.muteRtpStreams(bool mute_a, bool mute_b)        - mute A/B streams: don't send packets
233
-sbc.unmuteRtpStreams(bool unmute_a, bool unmute_b)  - unmute A/B streams: do send packets
229
+sbc.streamsSetReceiving(bool receiving_a, bool receiving_b)     - pause A/B streams: drop received packets 
Browse code

b/f:doc:dsm sbc typo

Stefan Sayer authored on 10/12/2013 10:55:40
Showing 1 changed files
... ...
@@ -78,7 +78,7 @@ sipRequest       - in dialog request
78 78
 sipReply         - in dialog reply
79 79
     Reply parameters (#sip_reason, #sip_code, ...)
80 80
  
81
-LegStateChange
81
+legStateChange
82 82
    #SBCCallStatus  - sbc call status (Disconnected, NoReply, Ringing, Connected, Disconnecting, Unknown)
83 83
  
84 84
    #reason == "SipRequest"
Browse code

sbc:cc-ext:dsm: documentation to shadowing config variables

Stefan Sayer authored on 02/12/2013 18:40:43
Showing 1 changed files
... ...
@@ -24,12 +24,14 @@ Configuration Example:
24 24
     cc_dsm_module=cc_dsm
25 25
     cc_dsm_app_bundle=sbc
26 26
     cc_dsm_start_diag=test_sbc
27
+    cc_dsm_config.myvar=myfinalvalue
27 28
   dsm.conf
28 29
     conf_dir=etc/sbc_dsm
29 30
   etc/sbc_dsm/sbc.conf
30 31
     diag_path=./etc/sbc_dsm
31 32
     load_diags=test_sbc
32 33
     mod_path=../apps/dsm/mods/lib/
34
+    myvar=willbeshadowed
33 35
   etc/sbc_dsm/test_sbc.dsm
34 36
      import(mod_sbc);
35 37
      initial state START;
... ...
@@ -44,6 +46,9 @@ Variables
44 46
 ---------
45 47
  $config.*    config set variables
46 48
 
49
+ variables set by call control instantiation, may shadow config set variables
50
+  (see configuration example above) 
51
+
47 52
 Parameters
48 53
 ----------
49 54
  #StopProcessing  = "true" -> stop call processing
Browse code

b/f:sbc:dsm: sbc.addCallee for new call with non-transparent dlg id

Stefan Sayer authored on 21/11/2013 15:28:49
Showing 1 changed files
... ...
@@ -200,6 +200,11 @@ sbc.addCallee(string mode, string varname)
200 200
          $varname.remote_party   - remote party (To) in new call
201 201
          $varname.hdrs           - headers in outgoing INVITE
202 202
          $varname.outbound_proxy - outbound proxy in new call
203
+         $varname.transparent_dlg_id - "yes" or "no": use transparent dlg IDs for new call; default no
204
+                                        - "no" very much advised if current leg was connected before!
205
+                                          otherwise local tag in current leg will be overwritten on reply
206
+                                          in other leg
207
+
203 208
      e.g.  set($b.local_party="sip:ftb@192.168.5.110:5080");
204 209
            set($b.remote_party="sip:neu@192.168.5.110:5088");
205 210
            sbc.addCallee(var, b);
Browse code

Merge remote-tracking branch 'frafos/1.6-dev' into 1.6-dev-ccdsm

* frafos/1.6-dev: (27 commits)
b2b calls quick hack: make RelayController accessible from derrived classes
sbc: keep original CSeq to support authentication case with Asterisk
sbc: allow to preserve media session when disconnecting
core: disable blacklist for in-dialog requests
sip: disable blacklist lookup if TR_FLAG_DISABLE_BL flag is set
sip: do not insert into blacklist if duration == 0
sbc: added active registration counter
b2b media b/f: do not try to set relay with empty remote address
AmRtpStream b/f: do not set mute together with hold
core: CPS limiter Calls-per-sec limiting capability, similar to the maximum number of calls limiter. There is a "soft limit" that is intended to use by the applications: if the app uses async processing and detects that the incoming workload is too much for the currenti capacity (which can depend on for example the remote DB engine's load), it can slewi it back to some percent of the current CPS; then when the circumstances are restored it can switch the CPS limit back to the configuration (or XMLRPC/stats interface) mandated value.
sbc: use non-hold SDP if possible when adding new callee
sbc: new event for asynchronous held call resume
b2b media cleanup: remove unused methods
sbc b/f: create hold request cleaner way
sbc b/f: signalize hold/resume request before creating the hold/resume request itself
webconference: add lonely_user_timer option
sbc b/f: apply remote SDP again if RTP mode changed during OA exchange
b2b media b/f: do not clear audio when removed from media processor
core: b/f: make get_header_keyvalue_single() case-insensitive as specified in RFC3261 7.3.1
sbc: improved hold handling
...

Conflicts:
apps/sbc/CallLeg.cpp
core/AmB2BMedia.h

Stefan Sayer authored on 13/11/2013 16:02:45
Showing 0 changed files
Browse code

sbc:dsm: #from_tag, #to_tag, #callid in sipRequest / reply events

Stefan Sayer authored on 11/11/2013 18:53:42
Showing 1 changed files
... ...
@@ -53,8 +53,8 @@ Events (Conditions)
53 53
 -------------------
54 54
 
55 55
 general: 
56
-   Request parameters: #method, #r_uri, #from, #to and #hdrs
57
-   Reply parameters:   #sip_reason, #sip_code, #from, #to and #hdrs
56
+   Request parameters: #method, #r_uri, #from, #to, #from_tag, #to_tag, #callid and #hdrs
57
+   Reply parameters:   #sip_reason, #sip_code, #from, #to, #from_tag, #to_tag, #callid and #hdrs
58 58
 
59 59
 start            - on startup of call control DSM
60 60
   
Browse code

sbc:dsm: addCallee mode ltag - reconnect existing callee leg

Stefan Sayer authored on 11/11/2013 18:51:50
Showing 1 changed files
... ...
@@ -205,6 +205,10 @@ sbc.addCallee(string mode, string varname)
205 205
            set($b.remote_party="sip:neu@192.168.5.110:5088");
206 206
            sbc.addCallee(var, b);
207 207
 
208
+  mode=="ltag"  - existing call referenced by ltag
209
+         $varname.ltag           - ltag of call to reconnect
210
+         $varname.hdrs           - headers in outgoing INVITE (optional)
211
+
208 212
 sbc.enableRelayDTMFReceiving(bool rcv_dtmf)  - enable receiving of RTP DTMF in relayed stream (RTP_Relay mode)
209 213
      note: session needs to be processed by media processor as well (sbc.addToMediaProcessor())
210 214
            so that DTMF is processed and passed up to the application (key event).
Browse code

sbc:dsm: pause/resume/mute/unmute rtp streams functions

Stefan Sayer authored on 10/11/2013 17:24:23
Showing 1 changed files
... ...
@@ -209,6 +209,12 @@ sbc.enableRelayDTMFReceiving(bool rcv_dtmf)  - enable receiving of RTP DTMF in r
209 209
      note: session needs to be processed by media processor as well (sbc.addToMediaProcessor())
210 210
            so that DTMF is processed and passed up to the application (key event).
211 211
 
212
-sbc.addToMediaProcessor   - add sbc session to media processor (no playlist set etc)
212
+sbc.addToMediaProcessor      - add sbc session to media processor (no playlist set etc)
213 213
 
214 214
 sbc.removeFromMediaProcessor - remove sbc session from media processor
215
+
216
+sbc.pauseRtpStreams(bool pause_a, bool pause_b)     - pause A/B streams: drop received packets 
217
+sbc.resumeRtpStreams(bool resume_a, bool resume_b)  - resume A/B streams: process received packets 
218
+
219
+sbc.muteRtpStreams(bool mute_a, bool mute_b)        - mute A/B streams: don't send packets
220
+sbc.unmuteRtpStreams(bool unmute_a, bool unmute_b)  - unmute A/B streams: do send packets
Browse code

sbc:dsm: DTMF related function (DTMF detection in relayed calls)

Stefan Sayer authored on 06/11/2013 00:06:01
Showing 1 changed files
... ...
@@ -157,6 +157,7 @@ sbc.profileSet(profile_variable, value)    - set SBC profile options
157 157
       msgflags_symmetric_rtp = "yes" | "no,
158 158
       rtprelay_transparent_seqno = "yes" | "no, rtprelay_transparent_ssrc = "yes" | "no, 
159 159
       rtprelay_interface, aleg_rtprelay_interface,
160
+      rtprelay_dtmf_detection = "yes" | "no, rtprelay_dtmf_filtering = "yes" | "no
160 161
 
161 162
 sbc.stopCall(string cause)         - stop both call legs
162 163
 
... ...
@@ -203,3 +204,11 @@ sbc.addCallee(string mode, string varname)
203 204
      e.g.  set($b.local_party="sip:ftb@192.168.5.110:5080");
204 205
            set($b.remote_party="sip:neu@192.168.5.110:5088");
205 206
            sbc.addCallee(var, b);
207
+
208
+sbc.enableRelayDTMFReceiving(bool rcv_dtmf)  - enable receiving of RTP DTMF in relayed stream (RTP_Relay mode)
209
+     note: session needs to be processed by media processor as well (sbc.addToMediaProcessor())
210
+           so that DTMF is processed and passed up to the application (key event).
211
+
212
+sbc.addToMediaProcessor   - add sbc session to media processor (no playlist set etc)
213
+
214
+sbc.removeFromMediaProcessor - remove sbc session from media processor
Browse code

sbc:dsm: sendDisconnectEvent and addCallee actions

Stefan Sayer authored on 05/11/2013 11:44:34
Showing 1 changed files
... ...
@@ -160,7 +160,10 @@ sbc.profileSet(profile_variable, value)    - set SBC profile options
160 160
 
161 161
 sbc.stopCall(string cause)         - stop both call legs
162 162
 
163
-sbc.disconnect(bool hold_remote)   - disconnect this call leg
163
+sbc.disconnect(bool hold_remote)   - disconnect this call leg from the other B2B call.
164
+                                     The SIP call is not ended (use dlg.bye() to end the SIP dialog).
165
+
166
+sbc.sendDisconnectEvent(bool hold_remote)   - send an event to this call leg to disconnect
164 167
 
165 168
 sbc.putOnHold                      - put this call leg on hold
166 169
 
... ...
@@ -186,3 +189,17 @@ sbc.relayReliableEvent(paramlist, processed_paramlist, unprocessed_paramlist) -
186 189
      logParams(3);
187 190
      set(#processed="true");
188 191
    } -> RUN;
192
+
193
+
194
+sbc.addCallee(string mode, string varname)
195
+  add a callee leg
196
+
197
+  mode=="var"  - new call properties set through variable struct (all optional)
198
+         $varname.local_party    - local party (From) in new call
199
+         $varname.remote_party   - remote party (To) in new call
200
+         $varname.hdrs           - headers in outgoing INVITE
201
+         $varname.outbound_proxy - outbound proxy in new call
202
+         $varname.rtp_mode       - RTP mode in new call ("RTP_Direct", "RTP_Relay", "RTP_Transcoding")
203
+     e.g.  set($b.local_party="sip:ftb@192.168.5.110:5080");
204
+           set($b.remote_party="sip:neu@192.168.5.110:5088");
205
+           sbc.addCallee(var, b);
Browse code

sbc:dsm: DSM app bundle and start diag from call control params

Stefan Sayer authored on 04/11/2013 15:48:11
Showing 1 changed files
... ...
@@ -1,4 +1,44 @@
1 1
 
2
+DSM applications for SBC
3
+------------------------
4
+The "dsm" call control module implements together with mod_sbc an DSM
5
+layer on top of the SBC, so that custom SBC call flows can be implemented
6
+using DSM script.
7
+
8
+Most of the call related DSM actions (handling audio with playFile, recordFile etc)
9
+do not work in SBC DSMs.
10
+
11
+DSM scripts for SBC are configured in a separate application bundle
12
+(a .conf file in dsm.conf conf_dir=...), set in the call control variable
13
+"app_bundle" and started up with the DSM set in the call control variable
14
+"start_diag".
15
+
16
+Configuration Example:
17
+  sbc.conf:
18
+   profiles=cc_dsm
19
+   load_cc_plugins=cc_dsm
20
+   active_profile=cc_dsm
21
+  cc_dsm.sbcprofile.conf:
22
+    RURI=sip:test@192.168.5.110:5088
23
+    call_control=cc_dsm
24
+    cc_dsm_module=cc_dsm
25
+    cc_dsm_app_bundle=sbc
26
+    cc_dsm_start_diag=test_sbc
27
+  dsm.conf
28
+    conf_dir=etc/sbc_dsm
29
+  etc/sbc_dsm/sbc.conf
30
+    diag_path=./etc/sbc_dsm
31
+    load_diags=test_sbc
32
+    mod_path=../apps/dsm/mods/lib/
33
+  etc/sbc_dsm/test_sbc.dsm
34
+     import(mod_sbc);
35
+     initial state START;
36
+     transition "init event" START - start / {
37
+       log(3, "initializing");
38
+       logAll(3);
39
+       sbc.profileSet(RURI, sip:set_from_DSM@192.168.5.110:5088);
40
+      ...
41
+
2 42
 
3 43
 Variables
4 44
 ---------
Browse code

sbc:dsm: support for reliable B2B events

sbc.relayReliableEvent(paramlist, processed_paramlist, unprocessed_paramlist) - relay reliable Event
if processed (#processed=true in other leg), event is sent back with processed_paramlist parameters,
if unprocessed, event is sent back with unprocessed_paramlist parameters
Example:
set($fwd_param1="this parameter goes fwd");
set($fwd_param2="this parameter goes fwd, too");
set($bck_param1="this parameter goes back if processed");
set($bck_param2="this parameter goes back if processed, too");
set($bck_unp_param1="this parameter goes back if not processed");
set($bck_unp_param2="this parameter goes back if not processed, too");
sbc.relayReliableEvent(fwd_param1;fwd_param2, bck_param1;bck_param2, bck_unp_param1;bck_unp_param2);

...

transition "B2B event" RUN - B2Bevent / {
logParams(3);
set(#processed="true");
} -> RUN;

Stefan Sayer authored on 04/11/2013 12:52:03
Showing 1 changed files
... ...
@@ -127,3 +127,22 @@ sbc.putOnHold                      - put this call leg on hold
127 127
 sbc.resumeHeld(bool send_reinvite) - resume from hold
128 128
 
129 129
 sbc.getSBCCallStatus(varname)      - get sbc call status into $varname
130
+
131
+sbc.relayReliableEvent(paramlist, processed_paramlist, unprocessed_paramlist) - relay reliable Event
132
+  if processed (#processed=true in other leg), event is sent back with processed_paramlist parameters,
133
+  if unprocessed, event is sent back with unprocessed_paramlist parameters
134
+  Example:
135
+   set($fwd_param1="this parameter goes fwd");
136
+   set($fwd_param2="this parameter goes fwd, too");
137
+   set($bck_param1="this parameter goes back if processed");
138
+   set($bck_param2="this parameter goes back if processed, too");
139
+   set($bck_unp_param1="this parameter goes back if not processed");
140
+   set($bck_unp_param2="this parameter goes back if not processed, too");
141
+   sbc.relayReliableEvent(fwd_param1;fwd_param2, bck_param1;bck_param2, bck_unp_param1;bck_unp_param2);
142
+
143
+   ...
144
+
145
+   transition "B2B event" RUN - B2Bevent / {
146
+     logParams(3);
147
+     set(#processed="true");
148
+   } -> RUN;
Browse code

sbc:dsm: added call status param

Stefan Sayer authored on 02/11/2013 15:18:27
Showing 1 changed files
... ...
@@ -34,6 +34,8 @@ sipReply         - in dialog reply
34 34
     Reply parameters (#sip_reason, #sip_code, ...)
35 35
  
36 36
 LegStateChange
37
+   #SBCCallStatus  - sbc call status (Disconnected, NoReply, Ringing, Connected, Disconnecting, Unknown)
38
+ 
37 39
    #reason == "SipRequest"
38 40
           + Request parameters (#method, #r_uri, ...)
39 41
    #reason == "SipReply"
... ...
@@ -116,14 +118,12 @@ sbc.profileSet(profile_variable, value)    - set SBC profile options
116 118
       rtprelay_transparent_seqno = "yes" | "no, rtprelay_transparent_ssrc = "yes" | "no, 
117 119
       rtprelay_interface, aleg_rtprelay_interface,
118 120
 
119
-sbc.stopCall(string cause)
120
-   stop both call legs
121
+sbc.stopCall(string cause)         - stop both call legs
122
+
123
+sbc.disconnect(bool hold_remote)   - disconnect this call leg
121 124
 
122
-sbc.disconnect(bool hold_remote)
123
-   disconnect this call leg
125
+sbc.putOnHold                      - put this call leg on hold
124 126
 
125
-sbc.putOnHold
126
-   put this call leg on hold
127
+sbc.resumeHeld(bool send_reinvite) - resume from hold
127 128
 
128
-sbc.resumeHeld(bool send_reinvite)
129
-   resume from hold
129
+sbc.getSBCCallStatus(varname)      - get sbc call status into $varname
Browse code

sbc:dsm: first version of DSM for SBC (wip)

allows the SBC to be controlled by DSM scripts
using the extended call control API.

Stefan Sayer authored on 02/11/2013 14:05:54
Showing 1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,129 @@
1
+
2
+
3
+Variables
4
+---------
5
+ $config.*    config set variables
6
+
7
+Parameters
8
+----------
9
+ #StopProcessing  = "true" -> stop call processing
10
+   in events: invite, 
11
+
12
+Events (Conditions)
13
+-------------------
14
+
15
+general: 
16
+   Request parameters: #method, #r_uri, #from, #to and #hdrs
17
+   Reply parameters:   #sip_reason, #sip_code, #from, #to and #hdrs
18
+
19
+start            - on startup of call control DSM
20
+  
21
+invite           - initial invite (onInitialInvite)
22
+   #remote_party
23
+   #remote_uri
24
+   #from
25
+
26
+   avars
27
+      DSM_AVAR_REQUEST              - original invite
28
+      DSM_SBC_AVAR_MODIFIED_INVITE  - modified invite (outgoing)
29
+
30
+sipRequest       - in dialog request
31
+    Request parameters (#method, #r_uri, ...)
32
+
33
+sipReply         - in dialog reply
34
+    Reply parameters (#sip_reason, #sip_code, ...)
35
+ 
36
+LegStateChange
37
+   #reason == "SipRequest"
38
+          + Request parameters (#method, #r_uri, ...)
39
+   #reason == "SipReply"
40
+          + Reply parameters (#sip_reason, #sip_code, ...)
41
+
42
+   #reason == "other"
43
+       #desc            - description
44
+   #reason == "Canceled"
45
+   #reason == "NoAck"
46
+   #reason == "NoPrack"
47
+   #reason == "RtpTimeout"
48
+   #reason == "SessionTimeout"
49
+   #reason == "InternalError"
50
+
51
+BLegRefused
52
+    Reply parameters (#sip_reason, #sip_code, ...)
53
+
54
+-- ----- hold related -------- 
55
+PutOnHold
56
+
57
+ResumeHeld
58
+   #send_reinvite ("true" or "false")
59
+
60
+CreateHoldRequest,
61
+
62
+HandleHoldReply,
63
+   #succeeded ("true" or "false")
64
+
65
+
66
+-- ----- simple relay related - non-INVITE messages -------- 
67
+   avars
68
+      DSM_SBC_AVAR_PROFILE              - call profile
69
+
70
+RelayInit
71
+   #relay_event == "init"
72
+
73
+RelayInitUAC
74
+   #relay_event == "initUAC"
75
+
76
+RelayInitUAS,
77
+   #relay_event == "initUAS"
78
+
79
+RelayFinalize,
80
+   #relay_event == "finalize"
81
+
82
+RelayOnSipRequest,
83
+   #relay_event == "onSipRequest"
84
+
85
+RelayOnSipReply,
86
+   #relay_event == "onSipReply"
87
+
88
+RelayOnB2BRequest,
89
+   #relay_event == "onB2BRequest"
90
+
91
+RelayOnB2BReply
92
+   #relay_event == "onB2BReply"
93
+
94
+
95
+Conditions
96
+----------
97
+call leg events (don't work in non-call SBC DSMs)
98
+
99
+sbc.isALeg
100
+
101
+sbc.isOnHold
102
+
103
+Actions
104
+-------
105
+sbc.profileSet(profile_variable, value)    - set SBC profile options
106
+    *** only meaningful in 'start' event (later, most profile options are not used any more) *** 
107
+    profile_variables: To, RURI, FROM, Call-ID, next_hop, RURI_host, refuse_with,
108
+    outbound_proxy, force_outbound_proxy = "yes" | "no,
109
+    aleg_outbound_proxy, aleg_force_outbound_proxy = "yes" | "no,
110
+    next_hop_1st_req = "yes" | "no,  patch_ruri_next_hop = "yes" | "no,
111
+    aleg_next_hop,
112
+    append_headers, append_headers_req, 
113
+    rtprelay_enabled  = "yes" | "no,
114
+      force_symmetric_rtp  = "yes" | "no, aleg_force_symmetric_rtp  = "yes" | "no,
115
+      msgflags_symmetric_rtp = "yes" | "no,
116
+      rtprelay_transparent_seqno = "yes" | "no, rtprelay_transparent_ssrc = "yes" | "no, 
117
+      rtprelay_interface, aleg_rtprelay_interface,
118
+
119
+sbc.stopCall(string cause)
120
+   stop both call legs
121
+
122
+sbc.disconnect(bool hold_remote)
123
+   disconnect this call leg
124
+
125
+sbc.putOnHold
126
+   put this call leg on hold
127
+
128
+sbc.resumeHeld(bool send_reinvite)
129
+   resume from hold