Merge pull request #879 in FS/freeswitch from ~DI-SHI/freeswitch:feature/FS-9238-update-for-osp-toolkit-4.11.3 to master
* commit 'dd8695457d48dcd4f44d078893e67cfaa84e2555': FS-9238: [mod_osp] Updated for OSP Toolkit 4.11.3.
This commit is contained in:
commit
4739845ced
|
@ -44,7 +44,7 @@
|
||||||
|
|
||||||
<!-- OSP work mode, direct or indirect -->
|
<!-- OSP work mode, direct or indirect -->
|
||||||
<param name="work-mode" value="direct"/>
|
<param name="work-mode" value="direct"/>
|
||||||
<!-- OSP service type, voice or npquery -->
|
<!-- OSP service type, voice, npquery or cnamquery -->
|
||||||
<param name="service-type" value="voice"/>
|
<param name="service-type" value="voice"/>
|
||||||
<!-- Max number of destinations -->
|
<!-- Max number of destinations -->
|
||||||
<param name="max-destinations" value="12"/>
|
<param name="max-destinations" value="12"/>
|
||||||
|
|
|
@ -43,7 +43,7 @@ OSP provider parameter names ane values cab be:
|
||||||
- http-retry-limit: HTTP retry times. The default is 2.
|
- http-retry-limit: HTTP retry times. The default is 2.
|
||||||
- http-timeout: HTTP timeout. The default is 10000 in ms.
|
- http-timeout: HTTP timeout. The default is 10000 in ms.
|
||||||
- work-mode: OSP module work mode (direct and indirect). The default is "direct".
|
- work-mode: OSP module work mode (direct and indirect). The default is "direct".
|
||||||
- service-type: OSP service type (voice and npquery). The default is "voice".
|
- service-type: OSP service type (voice, npquery and cnamquery (this option has not been implemented)). The default is "voice".
|
||||||
- max-destinations: Max destinations OSP server will return. It is up to 12. The default is 12.
|
- max-destinations: Max destinations OSP server will return. It is up to 12. The default is 12.
|
||||||
|
|
||||||
3 OSP Applications
|
3 OSP Applications
|
||||||
|
@ -54,7 +54,7 @@ The OSP applications are called in dial plan like this:
|
||||||
*PROFILE* is an OSP service provider profile name configured in osp.conf.xml. If data attribute is not provided or its value is empty, profile name "default" is used.
|
*PROFILE* is an OSP service provider profile name configured in osp.conf.xml. If data attribute is not provided or its value is empty, profile name "default" is used.
|
||||||
|
|
||||||
3.1 OSPLookup Application
|
3.1 OSPLookup Application
|
||||||
osplookup application does OSP authorization request and gets first supported destination for inbound calls. It exports a set channel variables for FreeSWITCH dial plan logic.
|
osplookup application does OSP authorization request and gets first supported destination for inbound calls. It exports a set of channel variables for FreeSWITCH dial plan logic.
|
||||||
osplookup application accepts two sets of channel variables that are used to pass additional inbound call information and outbound control parameters to OSP module. It also exports a set of channel variables for outbound channels and FreeSWITCH dial plan logic.
|
osplookup application accepts two sets of channel variables that are used to pass additional inbound call information and outbound control parameters to OSP module. It also exports a set of channel variables for outbound channels and FreeSWITCH dial plan logic.
|
||||||
|
|
||||||
3.1.1 Inbound Call Information
|
3.1.1 Inbound Call Information
|
||||||
|
@ -64,7 +64,9 @@ osplookup application accepts two sets of channel variables that are used to pas
|
||||||
|
|
||||||
3.1.2 Outbound Control Parameters
|
3.1.2 Outbound Control Parameters
|
||||||
- osp_networkid_userparam: The URI user parameter name that is used to present destination network ID. For example, sip:callednumber;networkid=dnid@host.
|
- osp_networkid_userparam: The URI user parameter name that is used to present destination network ID. For example, sip:callednumber;networkid=dnid@host.
|
||||||
- osp_networkid_uriparam: The URI parameter name that is used to present destination network ID. For example, sip:callednumber @host;networkid=dnid.
|
- osp_networkid_uriparam: The URI parameter name that is used to present destination network ID. For example, sip:callednumber@host;networkid=dnid.
|
||||||
|
- osp_outstring_userparam: The URI user parameter string. For example, sip:callednumber;outstring@host.
|
||||||
|
- osp_outstring_uriparam: The URI parameter string. For example, sip:callednumber@host;outstring.
|
||||||
- osp_user_phone: Flag to add "user=phone" URI parameter. The default is "disabled".
|
- osp_user_phone: Flag to add "user=phone" URI parameter. The default is "disabled".
|
||||||
- osp_outbound_proxy: Outbound proxy IP address channel variable.
|
- osp_outbound_proxy: Outbound proxy IP address channel variable.
|
||||||
|
|
||||||
|
@ -79,7 +81,7 @@ osplookup application accepts two sets of channel variables that are used to pas
|
||||||
- osp_termiation_cause: Destination termination cause. It will be used by ospnext application and OSP module state handlers.
|
- osp_termiation_cause: Destination termination cause. It will be used by ospnext application and OSP module state handlers.
|
||||||
|
|
||||||
3.2 OSPNext Application
|
3.2 OSPNext Application
|
||||||
ospnext application gets next supported destination for inbound calls. It exports a set channel variables for FreeSWITCH dial plan logic.
|
ospnext application gets next supported destination for inbound calls. It exports a set of channel variables for FreeSWITCH dial plan logic.
|
||||||
ospnext application accepts a set of channel variables exported by osplookup application to pass OSP call transaction information to OSP module. It also exports a set of channel variables for outbound channels and FreeSWITCH dial plan logic.
|
ospnext application accepts a set of channel variables exported by osplookup application to pass OSP call transaction information to OSP module. It also exports a set of channel variables for outbound channels and FreeSWITCH dial plan logic.
|
||||||
|
|
||||||
3.2.1 Transaction Parameters
|
3.2.1 Transaction Parameters
|
||||||
|
@ -157,7 +159,7 @@ OSP module state handler accepts a set of channel variables exported by osplooku
|
||||||
|
|
||||||
<!-- OSP work mode, direct or indirect -->
|
<!-- OSP work mode, direct or indirect -->
|
||||||
<param name="work-mode" value="direct"/>
|
<param name="work-mode" value="direct"/>
|
||||||
<!-- OSP service type, voice or npquery -->
|
<!-- OSP service type, voice, npquery or cnamquery -->
|
||||||
<param name="service-type" value="voice"/>
|
<param name="service-type" value="voice"/>
|
||||||
<!-- Max number of destinations -->
|
<!-- Max number of destinations -->
|
||||||
<param name="max-destinations" value="12"/>
|
<param name="max-destinations" value="12"/>
|
||||||
|
@ -176,15 +178,14 @@ OSP module state handler accepts a set of channel variables exported by osplooku
|
||||||
</extension>
|
</extension>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
Tag anything pass thru here as an outside_call so you can make sure not
|
Tag anything pass thru here as an outside_call so you can make sure
|
||||||
to create any routing loops based on the conditions that it came from
|
not to create any routing loops based on the conditions that it came
|
||||||
the outside of the switch.
|
from the outside of the switch.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<extension name="outside_call" continue="true">
|
<extension name="outside_call" continue="true">
|
||||||
<condition>
|
<condition>
|
||||||
<action application="set" data="outside_call=true"/>
|
<action application="set" data="outside_call=true"/>
|
||||||
<action application="export" data="RFC2822_DATE=${strftime(%a, %d %b %Y %T %z)}"/>
|
|
||||||
</condition>
|
</condition>
|
||||||
</extension>
|
</extension>
|
||||||
|
|
||||||
|
@ -206,27 +207,68 @@ OSP module state handler accepts a set of channel variables exported by osplooku
|
||||||
|
|
||||||
<!-- OSP lookup application logic -->
|
<!-- OSP lookup application logic -->
|
||||||
<context name="osp_lookup">
|
<context name="osp_lookup">
|
||||||
<extension name="lookup">
|
<!--
|
||||||
|
Inbound information parameters
|
||||||
|
-->
|
||||||
|
<extension name="prepare_inbound" continue="true">
|
||||||
<condition>
|
<condition>
|
||||||
<!-- Inbound information parameters -->
|
<!-- Actual source device from P-Source-Device -->
|
||||||
<!-- Actual source device -->
|
|
||||||
<action application="set" data="osp_source_device=${sip_h_P-Source-Device}"/>
|
<action application="set" data="osp_source_device=${sip_h_P-Source-Device}"/>
|
||||||
<!-- Source network ID -->
|
|
||||||
|
<!-- Actual source device from SDP connection -->
|
||||||
|
<!--
|
||||||
|
<condition field="${switch_r_sdp}" expression="c=IN IP4 (.*?)(/|\r)" break="never">
|
||||||
|
<action application="set" data="osp_source_device=$1"/>
|
||||||
|
</condition>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- Source network ID from P-Network-ID -->
|
||||||
<action application="set" data="osp_source_nid=${sip_h_P-Network-ID}"/>
|
<action application="set" data="osp_source_nid=${sip_h_P-Network-ID}"/>
|
||||||
<!-- Custom info -->
|
|
||||||
<action application="set" data="osp_custom_info_4=${sip_h_P-Custom-Info}"/>
|
<!-- Source network ID from otg -->
|
||||||
<!-- Outbound control parameters -->
|
<!--
|
||||||
|
<condition field="${sip_from_params};" expression="otg=(.*?);" break="never">
|
||||||
|
<action application="set" data="osp_source_nid=$1"/>
|
||||||
|
</condition>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- Custom info, index starting from 1 -->
|
||||||
|
<action application="set" data="osp_custom_info_1=${sip_h_P-Custom-Info}"/>
|
||||||
|
</condition>
|
||||||
|
</extension>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Outbound control parameters
|
||||||
|
-->
|
||||||
|
<extension name="prepare_outbound" continue="true">
|
||||||
|
<condition>
|
||||||
<!-- Destination network ID parameter name, "sip:callednumber;dnidname=dnidvalue@host" -->
|
<!-- Destination network ID parameter name, "sip:callednumber;dnidname=dnidvalue@host" -->
|
||||||
<!-- <action application="set" data="osp_networkid_userparam=networkid"/> -->
|
<!-- <action application="set" data="osp_networkid_userparam=networkid"/> -->
|
||||||
|
|
||||||
<!-- Destination network ID parameter name, "sip:callednumber@host;dnidname=dnidvalue" -->
|
<!-- Destination network ID parameter name, "sip:callednumber@host;dnidname=dnidvalue" -->
|
||||||
<action application="set" data="osp_networkid_uriparam=networkid"/>
|
<action application="set" data="osp_networkid_uriparam=networkid"/>
|
||||||
|
|
||||||
|
<!-- Fixed outbound parameter string, "sip:callednumber;outboundstring@host" -->
|
||||||
|
<!-- <action application="set" data="osp_outstring_userparam=outboundstring"/> -->
|
||||||
|
|
||||||
|
<!-- Fixed outbound parameter string, "sip:callednumber@host;outboundstring" -->
|
||||||
|
<!-- <action application="set" data="osp_outstring_uriparam=transport=udp"/> -->
|
||||||
|
|
||||||
<!-- Append "user=phone" -->
|
<!-- Append "user=phone" -->
|
||||||
<!-- <action application="set" data="osp_user_phone=enabled"/> -->
|
<!-- <action application="set" data="osp_user_phone=enabled"/> -->
|
||||||
|
|
||||||
<!-- Outbound proxy -->
|
<!-- Outbound proxy -->
|
||||||
<!-- <action application="set" data="osp_outbound_proxy=${network_addr}"/> -->
|
<!-- <action application="set" data="osp_outbound_proxy=${network_addr}"/> -->
|
||||||
|
</condition>
|
||||||
|
</extension>
|
||||||
|
|
||||||
|
<extension name="lookup">
|
||||||
|
<condition>
|
||||||
<!-- OSP lookup application with default OSP profile -->
|
<!-- OSP lookup application with default OSP profile -->
|
||||||
<action application="osplookup" data="default"/>
|
<action application="osplookup" data="default"/>
|
||||||
<!-- Debug info -->
|
<!--
|
||||||
|
Debug info
|
||||||
|
-->
|
||||||
<!-- OSP profile name -->
|
<!-- OSP profile name -->
|
||||||
<action application="log" data="DEBUG osp_profile_name = ${osp_profile_name}"/>
|
<action application="log" data="DEBUG osp_profile_name = ${osp_profile_name}"/>
|
||||||
<!-- OSP transaction handle -->
|
<!-- OSP transaction handle -->
|
||||||
|
@ -265,10 +307,18 @@ OSP module state handler accepts a set of channel variables exported by osplooku
|
||||||
<condition>
|
<condition>
|
||||||
<!-- Bridge control parameters -->
|
<!-- Bridge control parameters -->
|
||||||
<action application="set" data="continue_on_fail=true"/>
|
<action application="set" data="continue_on_fail=true"/>
|
||||||
<action application="set" data="hangup_after_bridge=false"/>
|
<action application="set" data="hangup_after_bridge=true"/>
|
||||||
|
<!-- Timeout for without media -->
|
||||||
|
<action application="set" data="progress_timeout=5"/>
|
||||||
|
<!-- Timeout after ringing -->
|
||||||
|
<action application="set" data="call_timeout=60"/>
|
||||||
|
<!-- To proxy media, comment out the following line -->
|
||||||
|
<action application="set" data="bypass_media=true"/>
|
||||||
<!-- Bridge call legs -->
|
<!-- Bridge call legs -->
|
||||||
<action application="bridge" data="${osp_auto_route}"/>
|
<action application="bridge" data="${osp_auto_route}"/>
|
||||||
<!-- Debug info -->
|
<!--
|
||||||
|
Debug info
|
||||||
|
-->
|
||||||
<!-- Destination termination cause for failed call -->
|
<!-- Destination termination cause for failed call -->
|
||||||
<action application="log" data="DEBUG last_bridge_hangup_cause = ${last_bridge_hangup_cause}"/>
|
<action application="log" data="DEBUG last_bridge_hangup_cause = ${last_bridge_hangup_cause}"/>
|
||||||
<!-- Jump out to run OSP Next -->
|
<!-- Jump out to run OSP Next -->
|
||||||
|
@ -283,7 +333,9 @@ OSP module state handler accepts a set of channel variables exported by osplooku
|
||||||
<condition>
|
<condition>
|
||||||
<!-- OSP next application -->
|
<!-- OSP next application -->
|
||||||
<action application="ospnext"/>
|
<action application="ospnext"/>
|
||||||
<!-- Debug info -->
|
<!--
|
||||||
|
Debug info
|
||||||
|
-->
|
||||||
<!-- OSP next application status -->
|
<!-- OSP next application status -->
|
||||||
<action application="log" data="DEBUG osp_next_status = ${osp_next_status}"/>
|
<action application="log" data="DEBUG osp_next_status = ${osp_next_status}"/>
|
||||||
<!-- Count of current destination, starting from 1 -->
|
<!-- Count of current destination, starting from 1 -->
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue