[Serusers] gw-pstn.3.07.cfg with Call-Transfer support

Paul Hazlett javarockx at gmail.com
Wed Jul 27 01:03:47 CEST 2005


Bastian,

We are working on the next release of the onsip.org Getting Started
document and it will contain call forwarding, forward no answer, and
forward busy features which we implemented using avpops and
serial-forking.

Pleaes bear with us as we validate our docs and go through the release
cycle. It shouldn't be too much longer.

Regards,
Paul

On 7/26/05, Bastian Schern <ml01 at in-bln.de> wrote:
> Hello,
> 
> I tried out the SER config "gw-pstn.3.07.cfg" from www.onsip.org.
> 
> Nearly everything works fine but "Call-Transfer" is not working.
> Is it possible to integrate "Call-Transfer" support into the
> "gw-pstn.3.07.cfg"?
> 
> Does anybody integrates this already?
> 
> Regards
>         Bastian
> 
> 
> 
> debug=3
> fork=yes
> log_stderror=no
> 
> listen=192.0.2.13               # INSERT YOUR IP ADDRESS HERE
> port=5060
> children=4
> 
> dns=no
> rev_dns=no
> 
> fifo="/tmp/ser_fifo"
> fifo_db_url="mysql://ser:heslo@localhost/ser"
> 
> loadmodule "/usr/local/lib/ser/modules/mysql.so"
> loadmodule "/usr/local/lib/ser/modules/sl.so"
> loadmodule "/usr/local/lib/ser/modules/tm.so"
> loadmodule "/usr/local/lib/ser/modules/rr.so"
> loadmodule "/usr/local/lib/ser/modules/maxfwd.so"
> loadmodule "/usr/local/lib/ser/modules/usrloc.so"
> loadmodule "/usr/local/lib/ser/modules/registrar.so"
> loadmodule "/usr/local/lib/ser/modules/auth.so"
> loadmodule "/usr/local/lib/ser/modules/auth_db.so"
> loadmodule "/usr/local/lib/ser/modules/uri.so"
> loadmodule "/usr/local/lib/ser/modules/uri_db.so"
> loadmodule "/usr/local/lib/ser/modules/mediaproxy.so"
> loadmodule "/usr/local/lib/ser/modules/nathelper.so"
> loadmodule "/usr/local/lib/ser/modules/textops.so"
> loadmodule "/usr/local/lib/ser/modules/avpops.so"
> loadmodule "/usr/local/lib/ser/modules/domain.so"
> loadmodule "/usr/local/lib/ser/modules/permissions.so"
> 
> modparam("auth_db|permissions|uri_db|usrloc",
>         "db_url", "mysql://ser:heslo@localhost/ser")
> modparam("auth_db", "calculate_ha1", 1)
> modparam("auth_db", "password_column", "password")
> 
> modparam("nathelper", "rtpproxy_disable", 1)
> modparam("nathelper", "natping_interval", 0)
> 
> modparam("mediaproxy","natping_interval", 30)
> modparam("mediaproxy","mediaproxy_socket", "/var/run/mediaproxy.sock")
> modparam("mediaproxy","sip_asymmetrics","/usr/local/etc/ser/sip-clients")
> modparam("mediaproxy","rtp_asymmetrics","/usr/local/etc/ser/rtp-clients")
> 
> modparam("usrloc", "db_mode", 2)
> 
> modparam("registrar", "nat_flag", 6)
> 
> modparam("rr", "enable_full_lr", 1)
> 
> modparam("tm", "fr_inv_timer", 27)
> modparam("tm", "fr_inv_timer_avp", "inv_timeout")
> 
> modparam("permissions", "db_mode", 1)
> modparam("permissions", "trusted_table", "trusted")
> 
> route {
> 
>         # -----------------------------------------------------------------
>         # Sanity Check Section
>         # -----------------------------------------------------------------
>         if (!mf_process_maxfwd_header("10")) {
>                 sl_send_reply("483", "Too Many Hops");
>                 break;
>         };
> 
>         if (msg:len > max_len) {
>                 sl_send_reply("513", "Message Overflow");
>                 break;
>         };
> 
>         # -----------------------------------------------------------------
>         # Record Route Section
>         # -----------------------------------------------------------------
>         if (method=="INVITE" && client_nat_test("3")) {
>                 # INSERT YOUR IP ADDRESS HERE
>                 record_route_preset("192.0.2.13:5060;nat=yes");
>         } else if (method!="REGISTER") {
>                 record_route();
>         };
> 
>         # -----------------------------------------------------------------
>         # Call Tear Down Section
>         # -----------------------------------------------------------------
>         if (method=="BYE" || method=="CANCEL") {
>                 end_media_session();
>         };
> 
>         # -----------------------------------------------------------------
>         # Loose Route Section
>         # -----------------------------------------------------------------
>         if (loose_route()) {
> 
>                 if (has_totag() && (method=="INVITE" || method=="ACK")) {
> 
>                         if (client_nat_test("3")||search("^Route:.*;nat=yes")){
>                                 setflag(6);
>                                 use_media_proxy();
>                         };
>                 };
> 
>                 route(1);
>                 break;
>         };
> 
>         # -----------------------------------------------------------------
>         # Call Type Processing Section
>         # -----------------------------------------------------------------
> 
>         if (uri!=myself) {
>                 route(5);
>                 route(1);
>                 break;
>         };
> 
>         if (uri==myself) {
> 
>                 if (method=="ACK") {
>                         route(6);
>                         break;
>                 } else if (method=="CANCEL") {
>                         route(3);
>                         break;
>                 } else if (method=="INVITE") {
>                         route(3);
>                         break;
>                 } else  if (method=="REGISTER") {
>                         route(2);
>                         break;
>                 };
> 
>                 lookup("aliases");
>                 if (uri!=myself) {
>                         route(5);
>                         route(1);
>                         break;
>                 };
> 
>                 if (!lookup("location")) {
>                         sl_send_reply("404", "User Not Found");
>                         break;
>                 };
>         };
> 
>         route(1);
> }
> 
> route[1] {
> 
>         # -----------------------------------------------------------------
>         # Default Message Handler
>         # -----------------------------------------------------------------
> 
>         t_on_reply("1");
> 
>         if (!t_relay()) {
> 
>                 if (method=="INVITE" || method=="ACK") {
>                         end_media_session();
>                 };
> 
>                 sl_reply_error();
>         };
> }
> 
> route[2] {
> 
>         # -----------------------------------------------------------------
>         # REGISTER Message Handler
>         # -----------------------------------------------------------------
> 
>         sl_send_reply("100", "Trying");
> 
>         if (!search("^Contact:\ +\*") && client_nat_test("7")) {
>                 setflag(6);
>                 fix_nated_register();
>                 force_rport();
>         };
> 
>         if (!www_authorize("","subscriber")) {
>                 www_challenge("","0");
>                 break;
>         };
> 
>         if (!check_to()) {
>                 sl_send_reply("401", "Unauthorized");
>                 break;
>         };
> 
>         consume_credentials();
> 
>         if (!save("location")) {
>                 sl_reply_error();
>         };
> }
> 
> route[3] {
> 
>         # -----------------------------------------------------------------
>         # CANCEL and INVITE Message Handler
>         # -----------------------------------------------------------------
> 
>         if (client_nat_test("3")) {
>                 setflag(7);
>                 force_rport();
>                 fix_nated_contact();
>         };
> 
>         if (method=="INVITE" && !allow_trusted()) {
> 
>                 if (!proxy_authorize("","subscriber")) {
>                         proxy_challenge("","0");
>                         break;
>                 } else if (!check_from()) {
>                         sl_send_reply("403", "Use From=ID");
>                         break;
>                 };
> 
>                 consume_credentials();
>         };
> 
>         lookup("aliases");
>         if (uri!=myself) {
>                 route(5);
>                 route(1);
>                 break;
>         };
> 
>         if (uri=~"^sip:011[0-9]*@") {           # International PSTN
>                 route(4);
>                 break;
>         };
> 
>         if (!lookup("location")) {
> 
>                 if (uri=~"^sip:[0-9]{10}@") {   # Domestic PSTN
>                         route(4);
>                         break;
>                 };
> 
>                 sl_send_reply("404", "User Not Found");
>                 break;
>         };
> 
>         if (method=="CANCEL") {
>                 route(1);
>                 break;
>         };
> 
>         route(5);
>         route(1);
> }
> 
> route[4] {
> 
>         # -----------------------------------------------------------------
>         # PSTN Handler
>         # -----------------------------------------------------------------
> 
>         rewritehost("192.0.2.245"); # INSERT YOUR PSTN GATEWAY IP ADDRESS
> 
>         avp_write("i:45", "inv_timeout");
> 
>         route(5);
>         route(1);
> }
> 
> route[5] {
> 
>         # -----------------------------------------------------------------
>         # RTP Proxy Enabler
>         # -----------------------------------------------------------------
> 
>         if (isflagset(6) || isflagset(7)) {
>                 use_media_proxy();
>         };
> }
> 
> route[6] {
> 
>         # ------------------------------------------------------------------------
>         # ACK Handler
>         # ------------------------------------------------------------------------
> 
>         # ------------------------------------------------------------------------
>         # Aliases Section
>         # ------------------------------------------------------------------------
>         lookup("aliases");
>         if (uri!=myself) {
>                 route(5);
>                 route(1);
>                 break;
>         };
> 
>         lookup("location");
> 
>         route(1);
> }
> 
> 
> onreply_route[1] {
> 
>         if ((isflagset(6) || isflagset(7)) &&
>             (status=~"(180)|(183)|2[0-9][0-9]")) {
> 
>                 if (!search("^Content-Length:\ +0")) {
>                         use_media_proxy();
>                 };
>         };
> 
>         if (client_nat_test("1")) {
>                 fix_nated_contact();
>         };
> }
> 
> 
> _______________________________________________
> Serusers mailing list
> serusers at lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers
> 
> 
>




More information about the sr-users mailing list