[OpenSIPS-Users] OCS-Asterisk Gateway tcp-to-udp
Steffen Görlach
Steffen.Goerlach at connextis.de
Wed Oct 22 12:34:27 CEST 2008
Hello to all,
I`m trying to setup opensips as a gateway from Office Communication Server (tcp) to Asterisk (udp). I followed this guide: http://confluence.terena.org:8080/display/IPTelCB/3.2.7.+Tying+MS+OCS+with+Asterisk+through+OpenSER
My Setup is:
Trixbox with 2 IPs:
192.168.67.4 -> Asterisk (Port 5060)
192.168.67.5 -> Opensips (Port 5060)
Office Communication Server 2007
192.168.67.83 -> OCS-Mediation-Server (Port 5060)
This Setup can establish phone calls , but I got problems with the SIP-Status messages. If I call from OCS-Phone to Asterisk Extension and I cancel the Call, the Asterisk Phone don’t get this Cancel-Message.
How can I route all of the SIP-messages to the Asterisk and the other way?
My log posts this ERROR (I don`t if this matters for my Problem):
ERROR:core:forward_reply: no 2nd via found in reply
Here is my opensips.cfg:
#
# $Id: opensips.cfg 4423 2008-06-27 10:25:01Z henningw $
#
# OpenSIPS basic configuration script
# by Anca Vamanu <anca at voice-system.ro>
#
# Please refer to the Core CookBook at http://www.opensips.org/dokuwiki/doku.php
# for a explanation of possible statements, functions and parameters.
#
####### Global Parameters #########
debug=3
log_stderror=no
log_facility=LOG_LOCAL0
fork=yes
children=4
/* uncomment the following lines to enable debugging */
#debug=6
#fork=no
#log_stderror=yes
/* uncomment the next line to disable TCP (default on) */
disable_tcp=no
/* 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
/* uncomment the next line to disable the auto discovery of local aliases
based on revers DNS on IPs (default on) */
auto_aliases=no
/* uncomment the following lines to enable TLS support (default off) */
#disable_tls = no
#listen = tls:your_IP:5061
#tls_verify_server = 1
#tls_verify_client = 1
#tls_require_client_certificate = 0
#tls_method = TLSv1
#tls_certificate = "//etc/opensips/tls/user/user-cert.pem"
#tls_private_key = "//etc/opensips/tls/user/user-privkey.pem"
#tls_ca_list = "//etc/opensips/tls/user/user-calist.pem"
#port=5061
/* uncomment and configure the following line if you want opensips to
bind on a specific interface/port/proto (default bind on all available) */
listen=udp:192.168.67.5:5060
listen=tcp:192.168.67.5:5060
####### Modules Section ########
#set module path
mpath="//lib/opensips/modules/"
/* uncomment next line for MySQL DB support */
#loadmodule "db_mysql.so"
loadmodule "sl.so"
loadmodule "tm.so"
loadmodule "rr.so"
loadmodule "maxfwd.so"
loadmodule "usrloc.so"
loadmodule "registrar.so"
loadmodule "textops.so"
loadmodule "mi_fifo.so"
loadmodule "uri_db.so"
loadmodule "uri.so"
loadmodule "xlog.so"
loadmodule "acc.so"
/* uncomment next lines for MySQL based authentication support
NOTE: a DB (like db_mysql) module must be also loaded */
#loadmodule "auth.so"
#loadmodule "auth_db.so"
/* uncomment next line for aliases support
NOTE: a DB (like db_mysql) module must be also loaded */
#loadmodule "alias_db.so"
/* uncomment next line for multi-domain support
NOTE: a DB (like db_mysql) module must be also loaded
NOTE: be sure and enable multi-domain support in all used modules
(see "multi-module params" section ) */
#loadmodule "domain.so"
/* uncomment the next two lines for presence server support
NOTE: a DB (like db_mysql) module must be also loaded */
#loadmodule "presence.so"
#loadmodule "presence_xml.so"
# ----------------- setting module-specific parameters ---------------
# ----- mi_fifo params -----
modparam("mi_fifo", "fifo_name", "/tmp/opensips_fifo")
# ----- rr params -----
# add value to ;lr param to cope with most of the UAs
modparam("rr", "enable_full_lr", 1)
# do not append from tag to the RR (no need for this script)
modparam("rr", "append_fromtag", 0)
# ----- rr params -----
modparam("registrar", "method_filtering", 1)
/* uncomment the next line to disable parallel forking via location */
# modparam("registrar", "append_branches", 0)
/* uncomment the next line not to allow more than 10 contacts per AOR */
#modparam("registrar", "max_contacts", 10)
# ----- uri_db params -----
/* by default we disable the DB support in the module as we do not need it
in this configuration */
modparam("uri_db", "use_uri_table", 0)
modparam("uri_db", "db_url", "")
# ----- acc params -----
/* what sepcial events should be accounted ? */
modparam("acc", "early_media", 1)
modparam("acc", "report_ack", 1)
modparam("acc", "report_cancels", 1)
/* by default ww 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)
/* account triggers (flags) */
modparam("acc", "failed_transaction_flag", 3)
modparam("acc", "log_flag", 1)
modparam("acc", "log_missed_flag", 2)
/* uncomment the following lines to enable DB accounting also */
modparam("acc", "db_flag", 1)
modparam("acc", "db_missed_flag", 2)
####### Routing Logic ########
# main request routing logic
route{
if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483","Too Many Hops");
exit;
}
if (loose_route()) {
xlog("LOG: loose_route \n");
append_hf("P-hint: rr-enforced\r\n");
route(1);
};
if (!uri==myself)
{
append_hf("P-hint: outbound\r\n");
route(1);
}
if (src_ip == 192.168.67.83) {
#remove misleading CONTACT header line
remove_hf("Contact");
#remove UTF-8 information, as * is not able to process it properly
subst("/^(CONTENT-TYPE:.*);[ ]*charset=utf-8(.*)/\1\2/");
#relay request to *
if (!t_relay("udp:192.168.67.4:5060")) {
xlog("LOG:Goto asterisk \n");
sl_reply_error();
}
}
else {
#relay request to OCS
if (!t_relay("tcp:192.168.67.83:5060") ) {
xlog("LOG:Return to OCS \n");
sl_reply_error();
}
}
route(1);
}
route[1] {
xlog("LOG: Route 1 $src_ip \n");
# If coming from OCS
if (src_ip== 192.168.67.83)
{
if (method=="INVITE|BYE") {
xlog("L_INFO", "*** invite from OCS M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");
}
xlog("LOG: t_relay Asterisk \n $src_ip \n");
t_relay("udp:192.168.67.4:5060");
}
# else coming from Asterisk
else {
xlog("LOG: t_relay OCS \n $src_ip \n");
t_relay("tcp:192.168.67.83:5060");
};
exit;
}
onreply_route {
xlog("LOG: incoming reply \n $src_ip \n $tu \n");
if (src_ip == 192.168.67.83) {
#remove misleading CONTACT header line
remove_hf("Contact");
#remove UTF-8 information, as * is not able to process it properly
subst("/^(CONTENT-TYPE:.*);[ ]*charset=utf-8(.*)/\1\2/");
}
exit;
}
branch_route[1] {
xlog("LOG:new branch at $ru\n");
}
failure_route[1] {
if (t_was_cancelled()) {
exit;
}
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.opensips.org/pipermail/users/attachments/20081022/02be67ce/attachment-0001.htm
More information about the Users
mailing list