Documentation |
Documentation.Tutorials-SangomaVoiceTranscoding HistoryShow minor edits - Show changes to output May 10, 2017, at 04:40 PM
by
- Changed line 5 from:
%block text-align=left% '''written by Liviu Chircu <liviu@opensips.org>''' to:
%block text-align=left% '''Author: Liviu Chircu <liviu@opensips.org>''' May 10, 2017, at 04:39 PM
by
- Changed line 5 from:
%block text-align=right% '''written by Liviu Chircu''' to:
%block text-align=left% '''written by Liviu Chircu <liviu@opensips.org>''' March 30, 2016, at 12:41 PM
by
- Added lines 3-6:
!Voice Transcoding in OpenSIPS using Sangoma D-series Cards %block text-align=right% '''written by Liviu Chircu''' May 13, 2015, at 03:42 PM
by
- Changed line 14 from:
%red%As mentioned in the {+[[http://www.opensips.org/html/docs/modules/2.2.x/sngtc.html|module documentation]]+}, transcoding may only be done if the UAC performs early SDP negotiation.%% to:
%red%As mentioned in the {+[[http://www.opensips.org/html/docs/modules/2.2.x/sngtc.html|module documentation]]+}, transcoding may only be done if the UAC performs early SDP negotiation and the UAS supports late SDP negotiation.%% May 13, 2015, at 03:21 PM
by
- Changed line 14 from:
%red%As mentioned in the {+[[http://www.opensips.org/html/docs/modules/devel/uri.html|module documentation]]+}, transcoding may only be done if the UAC performs early SDP negotiation.%% to:
%red%As mentioned in the {+[[http://www.opensips.org/html/docs/modules/2.2.x/sngtc.html|module documentation]]+}, transcoding may only be done if the UAC performs early SDP negotiation.%% March 16, 2015, at 02:22 PM
by
- Changed line 14 from:
As mentioned in the [[http://www.opensips.org/html/docs/modules/devel/uri.html|module documentation]], transcoding may only be done if the UAC performs early SDP negotiation. to:
%red%As mentioned in the {+[[http://www.opensips.org/html/docs/modules/devel/uri.html|module documentation]]+}, transcoding may only be done if the UAC performs early SDP negotiation.%% August 05, 2013, at 05:57 PM
by
- Changed line 10 from:
This tutorial illustrates the required steps in order to perform audio transcoding with the D-series cards manufactured by Sangoma, using the ''sngtc_server'' daemon and the OpenSIPS ''sngtc'' module as its client. The latest version of the transcoding library, as of 1 August 2013 is: '''sng-tc-linux-1.3.4.1.x86_64.tgz''' to:
This tutorial illustrates the required steps in order to perform audio transcoding with the D-series cards manufactured by Sangoma, using the ''sngtc_server'' daemon and the OpenSIPS ''sngtc'' module as its client. The latest version of the transcoding library, as of 1 August 2013 is: '''sng-tc-linux-1.3.4.1''' August 05, 2013, at 05:09 PM
by
- Deleted lines 4-5:
(:allVersions Tutorials-SangomaVoiceTranscoding 1.11 :) August 05, 2013, at 05:09 PM
by
- Added lines 8-9:
http://www.opensips.org/images/tc-setup.png Deleted lines 16-17:
http://www.opensips.org/images/tc-setup.png August 05, 2013, at 03:07 PM
by
- Changed line 6 from:
(:versionLine Tutorials-SangomaVoiceTranscoding 1.11 :) to:
(:allVersions Tutorials-SangomaVoiceTranscoding 1.11 :) August 05, 2013, at 12:29 PM
by
- Changed line 6 from:
(:versionLine http://www.yahoo.com border=3 scroll=yes:) to:
(:versionLine Tutorials-SangomaVoiceTranscoding 1.11 :) August 05, 2013, at 12:12 PM
by
- Changed line 6 from:
(:includeHTML http://www.yahoo.com border=3 scroll=yes:) to:
(:versionLine http://www.yahoo.com border=3 scroll=yes:) August 05, 2013, at 12:12 PM
by
- Changed line 6 from:
(:versionLine http://www.yahoo.com border=3 scroll=yes:) to:
(:includeHTML http://www.yahoo.com border=3 scroll=yes:) August 05, 2013, at 12:05 PM
by
- Changed line 6 from:
(:includeHTMLxc http://www.yahoo.com border=3 scroll=yes:) to:
(:versionLine http://www.yahoo.com border=3 scroll=yes:) August 05, 2013, at 12:04 PM
by
- Changed line 6 from:
(:includeHTML http://www.yahoo.com border=3 scroll=yes:) to:
(:includeHTMLxc http://www.yahoo.com border=3 scroll=yes:) August 05, 2013, at 12:03 PM
by - August 05, 2013, at 11:59 AM
by
- Added lines 5-6:
(:includeHTML http://www.yahoo.com border=3 scroll=yes:) August 01, 2013, at 06:59 PM
by
- Changed line 8 from:
This tutorial illustrates the required steps in order to perform audio transcoding with the D-series cards manufactured by Sangoma, using the ''sngtc_server'' daemon and the OpenSIPS ''sngtc'' module as its client. The latest versions of the transcoding library, as of 1 August 2013 is: '''sng-tc-linux-1.3.4.1.x86_64.tgz''' to:
This tutorial illustrates the required steps in order to perform audio transcoding with the D-series cards manufactured by Sangoma, using the ''sngtc_server'' daemon and the OpenSIPS ''sngtc'' module as its client. The latest version of the transcoding library, as of 1 August 2013 is: '''sng-tc-linux-1.3.4.1.x86_64.tgz''' August 01, 2013, at 06:59 PM
by
- Changed line 8 from:
This tutorial illustrates the required steps in order to perform audio transcoding with the D-series cards manufactured by Sangoma, using the ''sngtc_server'' daemon and the OpenSIPS ''sngtc'' module as its client. to:
This tutorial illustrates the required steps in order to perform audio transcoding with the D-series cards manufactured by Sangoma, using the ''sngtc_server'' daemon and the OpenSIPS ''sngtc'' module as its client. The latest versions of the transcoding library, as of 1 August 2013 is: '''sng-tc-linux-1.3.4.1.x86_64.tgz''' August 01, 2013, at 06:56 PM
by
- Changed line 45 from:
All functions properly handle retransmissions. More details can be found in the [[http://www.opensips.org/html/docs/modules/devel/uri.html|module documentation]]. An example configuration file is shown below: to:
All functions properly handle retransmissions. More details can be found in the [[http://www.opensips.org/html/docs/modules/devel/uri.html|module documentation]]. A basic configuration file is shown below: August 01, 2013, at 06:56 PM
by
- Deleted lines 99-100:
modparam("db_mysql", "exec_query_threshold", 200000) Deleted line 104:
modparam("usrloc", "nat_bflag", "NAT") Changed lines 106-112 from:
modparam("usrloc", "db_url", "mysql://root:sangoma@localhost/opensips_1_9") modparam("usrloc", "nat_bflag", "NAT_BFLAG") modparam("registrar", "tcp_persistent_flag", "TCP_PERSIST_FLAG") modparam("registrar","received_avp", "$avp(42)") to:
modparam("usrloc", "db_url", "mysql://root:sangoma@localhost/opensips") August 01, 2013, at 06:48 PM
by
- Changed line 33 from:
Due to the limitations of the transcoding library, transcoding sessions can only be created if both codec A and codec B are known. Since this cannot be accomplished with a standard SIP call flow, the module ''restricts'' the receiving UA to perform ''late SDP negotiation''. to:
Due to the limitations of the transcoding library, transcoding sessions can only be created if both codec A and codec B are known. Since this cannot be accomplished with a standard SIP call flow, the module ''restricts'' the receiving UA to perform ''late SDP negotiation''. The diagram below explains this better: August 01, 2013, at 06:48 PM
by
- Changed lines 31-32 from:
!!!! Using the ''sngtc'' OpenSIPS module to:
!!!! Call flow with the ''sngtc'' OpenSIPS module Due to the limitations of the transcoding library, transcoding sessions can only be created if both codec A and codec B are known. Since this cannot be accomplished with a standard SIP call flow, the module ''restricts'' the receiving UA to perform ''late SDP negotiation''. Added lines 36-38:
---- !!!! Using the ''sngtc'' module August 01, 2013, at 06:41 PM
by
- Added lines 14-15:
http://www.opensips.org/images/tc-setup.png Changed line 33 from:
http://www.opensips.org/images/tc-setup.png to:
http://www.opensips.org/images/dialog-establish-tc.png August 01, 2013, at 05:04 PM
by
- Changed line 31 from:
http://www.opensips.org/images/tc-setup.jpg to:
http://www.opensips.org/images/tc-setup.png August 01, 2013, at 04:44 PM
by
- Changed line 31 from:
[[Attach:tc-setup.png]] to:
http://www.opensips.org/images/tc-setup.jpg August 01, 2013, at 04:41 PM
by
- Added lines 30-31:
[[Attach:tc-setup.png]] August 01, 2013, at 04:23 PM
by
- Changed line 12 from:
As stated in the [[http://www.opensips.org/html/docs/modules/devel/uri.html|module documentation]], transcoding may only be done if the UAC performs early SDP negotiation. to:
As mentioned in the [[http://www.opensips.org/html/docs/modules/devel/uri.html|module documentation]], transcoding may only be done if the UAC performs early SDP negotiation. August 01, 2013, at 04:11 PM
by
- Changed lines 126-127 from:
setsflag(FAIL_TRANS_FLAG); # ... even if the transaction fails to:
setsflag(FAIL_TRANS_FLAG); Deleted lines 127-129:
# even if in most of the cases is useless, do RR for # re-INVITEs alos, as some buggy clients do change route set # during the dialog. Changed lines 129-131 from:
record_route(); } else if (is_method("ACK")) to:
} else if (is_method("ACK")) { Changed lines 131-132 from:
to:
} Deleted lines 177-179:
if (is_method("INVITE")) sngtc_offer(); Changed lines 206-207 from:
# when routing via usrloc, log the missed calls also setflag(DB_MISSED_FLAG); to:
if (is_method("INVITE")) sngtc_offer(); Changed line 229 from:
sngtc_callee_answer("38.126.203.98", "38.126.203.98"); to:
sngtc_callee_answer("11.12.13.14", "11.12.13.14"); August 01, 2013, at 03:55 PM
by
- Changed line 1 from:
!!!!! Documentation -> [[Documentation.Tutorials | Tutorials ]] -> Voice Transcoding using Sangoma's D-series Cards to:
!!!!! Documentation -> [[Documentation.Tutorials | Tutorials ]] -> Voice Transcoding in OpenSIPS using Sangoma D-series Cards August 01, 2013, at 03:52 PM
by
- Changed lines 32-34 from:
# sngtc_offer - called at any INVITE request (re-INVITES too) # sngtc_callee_answer - called at 200 OK responses # sngtc_caller_answer - called at ACK requests to:
# sngtc_offer - called at any INVITE request (re-INVITES too), deletes the INVITE SDP body # sngtc_callee_answer - called at 200 OK responses, intersects codec offers, creates transcoding sessions if necessary # sngtc_caller_answer - called at ACK requests, adds an SDP body to the ACK request August 01, 2013, at 03:50 PM
by
- Deleted line 52:
August 01, 2013, at 03:50 PM
by
- Changed lines 51-64 from:
/* uncomment the following lines to enable debugging */ #fork=no #log_stderror=yes /* uncomment the next line to enable the auto temporary blacklisting of not available destinations (default disabled) */ #disable_dns_blacklist=no /* uncomment the next line to enable IPv6 lookup after IPv4 dns lookup failures (default disabled) */ #dns_try_ipv6=yes /* comment the next line to enable the auto discovery of local aliases based on revers DNS on IPs */ to:
August 01, 2013, at 03:49 PM
by
- Added line 265:
@] August 01, 2013, at 03:49 PM
by
- Deleted lines 264-306:
@] When receiving INVITE requests: [@ route { ... if (is_method("INVITE")) sngtc_offer(); ... } @] \\ Handling 200 OK responses: [@ onreply_route[1] { if ($rs == 200) sngtc_callee_answer("38.126.203.98", "38.126.203.98"); } @] Since the D-series transcoding cards are connected through either a PCI slot or simply an Ethernet connector, they cannot be assigned global IPs. Consequently, the module will write the local, private IP of the card in the SDP answers sent to each of the endpoints. Since this will not work with non-local UAs, the optional parameters force the RTP listen interface for each UA. This way, the script writer can enforce a global IP for the incoming RTP (which can be port forwarded to a transcoding card). \\ And ACK requests: [@ route { ... if (has_totag()) { ... if (is_method("ACK")) sngtc_caller_answer(); ... } } ... } @] August 01, 2013, at 03:48 PM
by
- Added lines 41-42:
####### Global Parameters ######### Changed lines 51-64 from:
to:
/* uncomment the following lines to enable debugging */ #fork=no #log_stderror=yes /* uncomment the next line to enable the auto temporary blacklisting of not available destinations (default disabled) */ #disable_dns_blacklist=no /* uncomment the next line to enable IPv6 lookup after IPv4 dns lookup failures (default disabled) */ #dns_try_ipv6=yes /* comment the next line to enable the auto discovery of local aliases based on revers DNS on IPs */ Added line 67:
Changed lines 76-78 from:
####### Modules Section ######## #set module path to:
####### Modules ######## Added line 84:
loadmodule "rr.so" Deleted line 87:
loadmodule "rr.so" Changed lines 91-94 from:
to:
loadmodule "usrloc.so" loadmodule "registrar.so" loadmodule "sngtc.so" Deleted line 102:
Deleted line 104:
Deleted line 106:
Deleted line 108:
Changed lines 111-115 from:
#modparam("dialog", "db_update_period", 5) modparam("dialog", "profiles_no_value", "inbound ; outbound ; shared") #modparam("dialog", "profiles_with_value", "caller ; myprofile; share") loadmodule "usrloc.so" to:
Deleted line 116:
loadmodule "registrar.so" Changed lines 118-139 from:
#modparam("registrar", "attr_avp", "$avp(attr_avp)") loadmodule "acc.so" /* what special events should be accounted ? */ modparam("acc", "early_media", 0) modparam("acc", "report_cancels", 0) /* by default we do not adjust the direct of the sequential requests. if you enable this parameter, be sure the enable "append_fromtag" in "rr" module */ modparam("acc", "detect_direction", 0) modparam("acc", "failed_transaction_flag", "FAIL_TRANS_FLAG") /* account triggers (flags) */ modparam("acc", "db_flag", "DB_CDR_FLAG") #modparam("acc", "cdr_flag", "DB_CDR_FLAG") modparam("acc", "db_missed_flag", "DB_MISSED_FLAG") modparam("acc", "multi_leg_info","leg_id=$avp(leg_id)") modparam("acc", "multi_leg_bye_info","call_cost=$avp(call_cost);used_min=$avp(used_min)") loadmodule "cfgutils.so" loadmodule "nathelper.so" to:
Changed lines 120-132 from:
modparam("nathelper","received_avp", "$avp(42)") modparam("cfgutils", "lock_pool_size", 64) @] When receiving INVITE requests: [@ route { ... if (is_method("INVITE")) sngtc_offer(); ... to:
####### Routing Logic ######## route { if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); exit; } force_rport(); if (has_totag()) { # sequential request withing a dialog should # take the path determined by record-routing if (loose_route()) { if (is_method("BYE")) { setsflag(FAIL_TRANS_FLAG); # ... even if the transaction fails } else if (is_method("INVITE")) { # even if in most of the cases is useless, do RR for # re-INVITEs alos, as some buggy clients do change route set # during the dialog. sngtc_offer(); record_route(); } else if (is_method("ACK")) sngtc_caller_answer(); # route it out to whatever destination was set by loose_route() # in $du (destination URI). route(1); } else { if (is_method("ACK")) { if (t_check_trans()) { # non loose-route, but stateful ACK; must be an ACK after # a 487 or e.g. 404 from upstream server t_relay(); exit; } else { # ACK without matching transaction -> # ignore and discard exit; } } sl_send_reply("404","Not here"); } exit; } # CANCEL processing if (is_method("CANCEL")) { if (t_check_trans()) t_relay(); exit; } t_check_trans(); # preloaded route checking if (loose_route()) { xlog("L_ERR", "Attempt to route with preloaded Route's [$fu/$tu/$ru/$ci]"); if (!is_method("ACK")) sl_send_reply("403","Preload Route denied"); exit; } # record routing if (!is_method("REGISTER|MESSAGE")) record_route(); if (is_method("INVITE")) sngtc_offer(); # requests for my domain if (is_method("PUBLISH|SUBSCRIBE")) { sl_send_reply("503", "Service Unavailable"); exit; } if (is_method("REGISTER")) { if (!save("location")) sl_reply_error(); exit; } if ($rU == NULL) { sl_send_reply("484","Address Incomplete"); exit; } # do lookup with method filtering if (!lookup("location","m")) { t_newtran(); t_reply("404", "Not Found"); exit; } # when routing via usrloc, log the missed calls also setflag(DB_MISSED_FLAG); route(1); } route[1] { # for INVITEs enable some additional helper routes if (is_method("INVITE")) { t_on_reply("2"); t_on_failure("1"); } if (!t_relay()) { send_reply("500", "Internal Error"); } exit; } onreply_route[2] { if ($rs == 200) sngtc_callee_answer("38.126.203.98", "38.126.203.98"); } failure_route[1] { if (t_was_cancelled()) { exit; } if (next_branches()) { t_on_reply("2"); t_on_failure("1"); t_relay(); } } August 01, 2013, at 03:36 PM
by
- Changed lines 36-37 from:
All functions properly handle retransmissions. More details can be found in the [[http://www.opensips.org/html/docs/modules/devel/uri.html|module documentation]]. An example configuration file is presented below: to:
All functions properly handle retransmissions. More details can be found in the [[http://www.opensips.org/html/docs/modules/devel/uri.html|module documentation]]. An example configuration file is shown below: Added lines 39-135:
[@ debug=6 log_stderror=yes log_facility=LOG_LOCAL0 fork=yes children=6 memdump=1 auto_aliases=no listen=udp:eth1:5060 disable_tcp=yes disable_tls=no exec_msg_threshold=200000 ####### Modules Section ######## #set module path mpath = "modules/" loadmodule "exec.so" loadmodule "signaling.so" loadmodule "sl.so" loadmodule "tm.so" loadmodule "maxfwd.so" loadmodule "sipmsgops.so" loadmodule "mi_fifo.so" loadmodule "rr.so" loadmodule "db_mysql.so" loadmodule "uri.so" loadmodule "dialog.so" modparam("tm", "fr_timer", 5) modparam("tm", "fr_inv_timer", 30) modparam("tm", "restart_fr_on_each_reply", 0) modparam("tm", "disable_6xx_block", 1) modparam("tm", "onreply_avp_mode", 1) modparam("rr", "append_fromtag", 0) modparam("mi_fifo", "fifo_name", "/tmp/opensips_fifo") modparam("db_mysql", "exec_query_threshold", 200000) modparam("uri", "use_uri_table", 0) modparam("dialog", "db_mode", 0) modparam("dialog", "default_timeout", 3600) #modparam("dialog", "db_update_period", 5) modparam("dialog", "profiles_no_value", "inbound ; outbound ; shared") #modparam("dialog", "profiles_with_value", "caller ; myprofile; share") loadmodule "usrloc.so" modparam("usrloc", "nat_bflag", "NAT") modparam("usrloc", "db_mode", 1) modparam("usrloc", "db_url", "mysql://root:sangoma@localhost/opensips_1_9") modparam("usrloc", "nat_bflag", "NAT_BFLAG") loadmodule "registrar.so" modparam("registrar", "tcp_persistent_flag", "TCP_PERSIST_FLAG") #modparam("registrar", "attr_avp", "$avp(attr_avp)") loadmodule "acc.so" /* what special events should be accounted ? */ modparam("acc", "early_media", 0) modparam("acc", "report_cancels", 0) /* by default we do not adjust the direct of the sequential requests. if you enable this parameter, be sure the enable "append_fromtag" in "rr" module */ modparam("acc", "detect_direction", 0) modparam("acc", "failed_transaction_flag", "FAIL_TRANS_FLAG") /* account triggers (flags) */ modparam("acc", "db_flag", "DB_CDR_FLAG") #modparam("acc", "cdr_flag", "DB_CDR_FLAG") modparam("acc", "db_missed_flag", "DB_MISSED_FLAG") modparam("acc", "multi_leg_info","leg_id=$avp(leg_id)") modparam("acc", "multi_leg_bye_info","call_cost=$avp(call_cost);used_min=$avp(used_min)") loadmodule "cfgutils.so" loadmodule "nathelper.so" modparam("registrar","received_avp", "$avp(42)") modparam("nathelper","received_avp", "$avp(42)") modparam("cfgutils", "lock_pool_size", 64) @] August 01, 2013, at 03:00 PM
by
- Changed line 36 from:
More details can be found in the [[http://www.opensips.org/html/docs/modules/devel/uri.html|module documentation]]. An example configuration file is presented below: to:
All functions properly handle retransmissions. More details can be found in the [[http://www.opensips.org/html/docs/modules/devel/uri.html|module documentation]]. An example configuration file is presented below: August 01, 2013, at 02:59 PM
by
- Changed lines 32-34 from:
- sngtc_offer - called at any INVITE request (re-INVITES too) - sngtc_callee_answer - called at 200 OK responses - sngtc_caller_answer - called at ACK requests to:
# sngtc_offer - called at any INVITE request (re-INVITES too) # sngtc_callee_answer - called at 200 OK responses # sngtc_caller_answer - called at ACK requests August 01, 2013, at 02:59 PM
by
- Changed lines 32-34 from:
* sngtc_offer - called at any INVITE request (re-INVITES too) * sngtc_callee_answer - called at 200 OK responses * sngtc_caller_answer - called at ACK requests to:
- sngtc_offer - called at any INVITE request (re-INVITES too) - sngtc_callee_answer - called at 200 OK responses - sngtc_caller_answer - called at ACK requests August 01, 2013, at 02:58 PM
by
- Changed lines 31-36 from:
The '''sngtc module''' exports 3 functions. They are called upon receiving INVITE, 200 OK and ACK messages. More details can be found in the [[http://www.opensips.org/html/docs/modules/devel/uri.html|module documentation]]. to:
The '''sngtc module''' exports 3 functions. They are called upon receiving INVITE, 200 OK and ACK messages. A short overview on their purpose would be: * sngtc_offer - called at any INVITE request (re-INVITES too) * sngtc_callee_answer - called at 200 OK responses * sngtc_caller_answer - called at ACK requests More details can be found in the [[http://www.opensips.org/html/docs/modules/devel/uri.html|module documentation]]. An example configuration file is presented below: July 31, 2013, at 08:07 PM
by
- Changed line 17 from:
The necessary firmware for the D-series transcoding cards can be set up using the ''sngtc_tool''. The cards which require PCI connectivity (D100 and D500) require the installation of additional kernel drivers. Please refer to the [[http://wiki.sangoma.com/Sangoma-Media-Transcoding-Product-Selection|Sangoma wiki]] for installation tutorials. to:
The necessary firmware for the D-series transcoding cards can be set up using the ''sngtc_tool''. The cards which require PCI connectivity (D100 and D500) also need additional kernel drivers. Please refer to the [[http://wiki.sangoma.com/Sangoma-Media-Transcoding-Product-Selection|Sangoma wiki]] for installation tutorials. July 31, 2013, at 08:05 PM
by
- Changed line 17 from:
All D-series trascoding cards require the proper firmware to be set up with the ''sngtc_tool''. The cards which require PCI connectivity (D100 and D500) require the installation of additional kernel drivers. Please refer to the [[http://wiki.sangoma.com/Sangoma-Media-Transcoding-Product-Selection|Sangoma wiki]] for installation tutorials. to:
The necessary firmware for the D-series transcoding cards can be set up using the ''sngtc_tool''. The cards which require PCI connectivity (D100 and D500) require the installation of additional kernel drivers. Please refer to the [[http://wiki.sangoma.com/Sangoma-Media-Transcoding-Product-Selection|Sangoma wiki]] for installation tutorials. July 31, 2013, at 08:04 PM
by
- Changed line 17 from:
The D-series transcoding cards which require PCI connectivity (D100 and D500) require the installation of additional kernel drivers. Please refer to the [[http://wiki.sangoma.com/Sangoma-Media-Transcoding-Product-Selection|Sangoma wiki]] for installation tutorials. to:
All D-series trascoding cards require the proper firmware to be set up with the ''sngtc_tool''. The cards which require PCI connectivity (D100 and D500) require the installation of additional kernel drivers. Please refer to the [[http://wiki.sangoma.com/Sangoma-Media-Transcoding-Product-Selection|Sangoma wiki]] for installation tutorials. July 31, 2013, at 06:23 PM
by
- Changed line 26 from:
By default it logs to ''/var/log/sngtc_server.log'' to:
By default it logs to /var/log/sngtc_server.log July 31, 2013, at 06:23 PM
by
- Added line 26:
By default it logs to ''/var/log/sngtc_server.log'' July 31, 2013, at 06:22 PM
by
- Changed line 24 from:
$ /etc/init.d/sngtc_server_ctl start to:
$ /etc/init.d/sngtc_server_ctrl start July 31, 2013, at 06:21 PM
by - July 31, 2013, at 06:18 PM
by - July 31, 2013, at 06:18 PM
by
- Changed line 8 from:
This tutorial will illustrate the required steps in order to perform audio transcoding with the D-series cards manufactured by Sangoma, using the ''sngtc_server'' daemon and the OpenSIPS ''sngtc'' module as its client. to:
This tutorial illustrates the required steps in order to perform audio transcoding with the D-series cards manufactured by Sangoma, using the ''sngtc_server'' daemon and the OpenSIPS ''sngtc'' module as its client. July 31, 2013, at 06:17 PM
by
- Changed line 1 from:
!!!!! Documentation -> [[Documentation.Tutorials | Tutorials ]] -> Performing Voice Transcoding using Sangoma's D-series Cards to:
!!!!! Documentation -> [[Documentation.Tutorials | Tutorials ]] -> Voice Transcoding using Sangoma's D-series Cards July 31, 2013, at 05:59 PM
by
- Changed line 30 from:
The '''sngtc module''' exports 3 functions. They are called upon receiving INVITE, 200 OK and ACK messages. to:
The '''sngtc module''' exports 3 functions. They are called upon receiving INVITE, 200 OK and ACK messages. More details can be found in the [[http://www.opensips.org/html/docs/modules/devel/uri.html|module documentation]]. July 31, 2013, at 05:56 PM
by
- Added lines 55-56:
Since the D-series transcoding cards are connected through either a PCI slot or simply an Ethernet connector, they cannot be assigned global IPs. Consequently, the module will write the local, private IP of the card in the SDP answers sent to each of the endpoints. Since this will not work with non-local UAs, the optional parameters force the RTP listen interface for each UA. This way, the script writer can enforce a global IP for the incoming RTP (which can be port forwarded to a transcoding card). July 31, 2013, at 05:54 PM
by
- Changed lines 72-74 from:
@] to:
@] The transcoding sessions on the Sangoma cards are closed in a transparent manner, based on dialog callbacks. July 31, 2013, at 05:52 PM
by
- Changed line 30 from:
The '''sngtc''' module exports 3 functions. They are called upon receiving INVITE, 200 OK and ACK messages. to:
The '''sngtc module''' exports 3 functions. They are called upon receiving INVITE, 200 OK and ACK messages. July 31, 2013, at 05:51 PM
by
- Added line 64:
... Added line 67:
... July 31, 2013, at 05:50 PM
by
- Changed lines 34-35 from:
At INVITE time: to:
When receiving INVITE requests: Changed lines 47-48 from:
At 200 OK time: to:
Handling 200 OK responses: Added lines 53-68:
} @] \\ And ACK requests: [@ route { ... if (has_totag()) { if (is_method("ACK")) sngtc_caller_answer(); } } ... July 31, 2013, at 05:48 PM
by
- Added lines 42-52:
} @] \\ At 200 OK time: [@ onreply_route[1] { if ($rs == 200) sngtc_callee_answer("38.126.203.98", "38.126.203.98"); July 31, 2013, at 05:45 PM
by
- Changed lines 30-43 from:
The '''sngtc''' module exports 3 functions. They are called upon receiving INVITE, 200 OK and ACK messages. to:
The '''sngtc''' module exports 3 functions. They are called upon receiving INVITE, 200 OK and ACK messages. \\ At INVITE time: [@ route { ... if (is_method("INVITE")) sngtc_offer(); ... } @] July 31, 2013, at 05:35 PM
by
- Changed line 22 from:
Installing the ''sngtc_server'' is straightforward and also documented in the [[http://wiki.sangoma.com/FreeSWITCH-D100-Single-Server-Installation|Sangoma wiki]]. After doing the configuration, you can start it with the init script: to:
Installing the ''sngtc_server'' is straightforward and also documented in the [[http://wiki.sangoma.com/FreeSWITCH-D100-Single-Server-Installation|Sangoma wiki]]. After doing the configuration, it can be started using the init script: Changed lines 28-30 from:
!!!! Using the ''sngtc'' OpenSIPS module to:
!!!! Using the ''sngtc'' OpenSIPS module The '''sngtc''' module exports 3 functions. They are called upon receiving INVITE, 200 OK and ACK messages. July 31, 2013, at 05:18 PM
by
- Changed line 24 from:
/etc/init.d/sngtc_server_ctl start to:
$ /etc/init.d/sngtc_server_ctl start July 31, 2013, at 05:18 PM
by
- Changed lines 22-25 from:
Installing the ''sngtc_server'' is straightforward and also documented in the [[http://wiki.sangoma.com/FreeSWITCH-D100-Single-Server-Installation|Transcoding wiki page]]. to:
Installing the ''sngtc_server'' is straightforward and also documented in the [[http://wiki.sangoma.com/FreeSWITCH-D100-Single-Server-Installation|Sangoma wiki]]. After doing the configuration, you can start it with the init script: [@ /etc/init.d/sngtc_server_ctl start @] July 31, 2013, at 05:17 PM
by
- Added lines 21-22:
Installing the ''sngtc_server'' is straightforward and also documented in the [[http://wiki.sangoma.com/FreeSWITCH-D100-Single-Server-Installation|Transcoding wiki page]]. July 31, 2013, at 02:22 PM
by
- Changed lines 8-9 from:
This tutorial will illustrate the required steps in order to perform audio transcoding with the D-series cards manufactured by Sangoma, using the ''sngtc_server'' daemon and the OpenSIPS ''sngtc'' module as its client. to:
This tutorial will illustrate the required steps in order to perform audio transcoding with the D-series cards manufactured by Sangoma, using the ''sngtc_server'' daemon and the OpenSIPS ''sngtc'' module as its client. Added lines 15-19:
!!!! Installing the transcoding card The D-series transcoding cards which require PCI connectivity (D100 and D500) require the installation of additional kernel drivers. Please refer to the [[http://wiki.sangoma.com/Sangoma-Media-Transcoding-Product-Selection|Sangoma wiki]] for installation tutorials. ---- Changed line 23 from:
!!!! Using the ''sngtc'' OpenSIPS module to:
!!!! Using the ''sngtc'' OpenSIPS module July 31, 2013, at 02:15 PM
by
- Changed lines 14-24 from:
The solution below requires no changes at all on the OpenSIPS side ( because it relies on a WebSocket to SIP gateway ), thus it can be easily integrated with '''0''' side-effects to your existing deployment. Secondly, the solution uses entirely open source components ( both for the server and the client side ) - which gives you great flexibility on the server side, as well as on the client side - since you can easily integrate the client into your existing client portals. !!!! Platform Components * We will be using OpenSIPS as the core part of the platform, handling all the SIP traffic. For a basic tutorial of setting up OpenSIPS see the [[ http://www.opensips.org/Documentation/Tutorials-GettingStarted | getting started tutorial ]] * [[ http://oversip.net | OverSIP]] will be used as a WebSocket to SIP gateway - all the websocket traffic will reach OverSIP, which will decapsulate the SIP traffic and relay it to the OpenSIPS proxy. OverSIP packages are available for Debian based systems and detailed installation instructions are available for other operating systems as well - see OverSIP deployment tutorial [[ http://oversip.net/documentation/1.3.x/installation/ | here ]] * For the SIP client for testing purposes, we will be using [[ http://sipml5.org/ | sipML5 ]] . It can be downloaded from [[http://code.google.com/p/sipml5/source/checkout | here]] and installation is very straight-forward : just copy the sources to your /var/www/ folder. The client's media stack relies on WebRTC and the client can be used to connect to any SIP or IMS network from your preferred browser to make and receive audio/video calls and instant messages. Furthermore, sipML5 should work on any web browser supporting WebRTC but we highly recommend using [[ https://www.google.com/intl/en/chrome/browser/ | Google Chrome ]] or [[http://nightly.mozilla.org/ | Firefox Nightly]] for testing. ---- to:
---- !!!! Setting up the ''sngtc_server'' ---- !!!! Using the ''sngtc'' OpenSIPS module July 31, 2013, at 02:13 PM
by
- Added lines 1-24:
!!!!! Documentation -> [[Documentation.Tutorials | Tutorials ]] -> Performing Voice Transcoding using Sangoma's D-series Cards This page has been visited {$PageCount} times. (:toc-float Table of Content:) ---- !!!! Tutorial Overview This tutorial will illustrate the required steps in order to perform audio transcoding with the D-series cards manufactured by Sangoma, using the ''sngtc_server'' daemon and the OpenSIPS ''sngtc'' module as its client. \\ As stated in the [[http://www.opensips.org/html/docs/modules/devel/uri.html|module documentation]], transcoding may only be done if the UAC performs early SDP negotiation. The solution below requires no changes at all on the OpenSIPS side ( because it relies on a WebSocket to SIP gateway ), thus it can be easily integrated with '''0''' side-effects to your existing deployment. Secondly, the solution uses entirely open source components ( both for the server and the client side ) - which gives you great flexibility on the server side, as well as on the client side - since you can easily integrate the client into your existing client portals. !!!! Platform Components * We will be using OpenSIPS as the core part of the platform, handling all the SIP traffic. For a basic tutorial of setting up OpenSIPS see the [[ http://www.opensips.org/Documentation/Tutorials-GettingStarted | getting started tutorial ]] * [[ http://oversip.net | OverSIP]] will be used as a WebSocket to SIP gateway - all the websocket traffic will reach OverSIP, which will decapsulate the SIP traffic and relay it to the OpenSIPS proxy. OverSIP packages are available for Debian based systems and detailed installation instructions are available for other operating systems as well - see OverSIP deployment tutorial [[ http://oversip.net/documentation/1.3.x/installation/ | here ]] * For the SIP client for testing purposes, we will be using [[ http://sipml5.org/ | sipML5 ]] . It can be downloaded from [[http://code.google.com/p/sipml5/source/checkout | here]] and installation is very straight-forward : just copy the sources to your /var/www/ folder. The client's media stack relies on WebRTC and the client can be used to connect to any SIP or IMS network from your preferred browser to make and receive audio/video calls and instant messages. Furthermore, sipML5 should work on any web browser supporting WebRTC but we highly recommend using [[ https://www.google.com/intl/en/chrome/browser/ | Google Chrome ]] or [[http://nightly.mozilla.org/ | Firefox Nightly]] for testing. ---- |