Re: [OpenSIPS-Users] drouting do_routing not randomizing when sort=1
OpenSIPS is now randomizing correctly. I guess I must have made a configuration error or something. Sorry for the noise. Alex On Thu, Jun 7, 2012 at 4:13 PM, Alejandro Recarey wrote: > Hi all, > > I am using opensips 1.6.2 and am using drouting module like this: > > do_routing("1","1"); > > According to the manual this means "group 1" and "randomize members in > each group". My group has the following gateways: > > 13,14 > > When I run opensips, the calls only go to gateway 13. I thought that > by randomizing, sometimes it would take "13,14" and sometimes "14,13". > Am I understanding this wrong? > > Alex ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] drouting do_routing not randomizing when sort=1
Hi all, I am using opensips 1.6.2 and am using drouting module like this: do_routing("1","1"); According to the manual this means "group 1" and "randomize members in each group". My group has the following gateways: 13,14 When I run opensips, the calls only go to gateway 13. I thought that by randomizing, sometimes it would take "13,14" and sometimes "14,13". Am I understanding this wrong? Alex ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] Problems with drouting configuration
Hi all, I've been trying to configure the drouting module, but I must not understand how to use it. When I use my drouting opensips.cfg file, the opensips server stops replying to INVITE requests. The file has no syntactical errors, and there is nothing in the log. My dr_rules table contains something like this: ruleid, groupid, prefix, timerec, priority, routeid, gwlist, description '1', '1', '1147', '2101T00', '0', '0', '1,2,3,4', 'Carrier 1' '2', '1', '131#', '2101T00', '0', '0', '5', 'Carrier 2' my dr_gateways table contains something like this: gwid, type, address, strip, pri_prefix, attrs, probe_mode, description '1', '2', '111.222.222.111', '4', NULL, NULL, '0', 'Carrier 1 GW 1' '2', '2', '123.123.123.123, '4', NULL, NULL, '0', 'Carrier 1 GW 2' '3', '2', '231.231.231.231', '4', NULL, NULL, '0', 'Carrier 1 GW 3' '4', '1', '122.122.122.122', '4', NULL, NULL, '0', 'Carrier 1 GW 4' '5', '1', '133.133.133.133', '4', NULL, NULL, '0', 'Carrier 2' dr_groups and dr_gw_lists are empty. The relevant part of my routing block is like this: # - Dynamic Routing module - # avp_aliases="dr_ruri=i:20" avp_aliases="dr_attrs=i:21" modparam("drouting", "db_url", "mysql://user:pass@ipaddress/database") modparam("drouting", "ruri_avp", '$avp(dr_ruri)') # stores alternative destinations for current route. modparam("drouting", "attrs_avp", '$avp(dr_attrs)') # Stores attribute of current selected destination. modparam("drouting", "use_domain", 0) modparam("drouting", "probing_from", "sip:pin...@mydomain.com") modparam("drouting", "probing_reply_codes", "501, 403, 404") <<<...>>> # Outbound route generation # if(do_routing("0","1")){ route(10); } else{ send_reply("503", "No Rules matching the URI"); exit; } exit; <<<...>>> # Routing for Dynamic routing rules route[10] { # for INVITEs enable some additional helper routes if (is_method("INVITE")) { t_on_branch("2"); t_on_reply("2"); t_on_failure("10"); } if (!t_relay()) { sl_reply_error(); }; exit; } # Dynamic Routing Failures failure_route[10] { if (t_was_cancelled()) { exit; } if (t_check_status("(408)") && t_local_replied("all")) { xlog("Carrier timed out - disabling route"); dr_disable(); # Try to route thru the next destination in list if (use_next_gw()) { t_on_failure("1"); t_relay(); } else { t_reply("503","Carrier Down / Unavailable"); } } So that's it. The rest of the config is the same as in my other (working) script. What am I doing wrong? Thanks for the help! ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] Dispacher load balancing on probing node
Hi all, I recently implemented OpenSIPS to load balance calls to an asterisk cluster, using the dispatcher module and taking advantage of the active probing for failed destinations feature. Everything works like a charm, except when one of the destinations goes to probing or inactive state. When this happens, all of the calls that would have been made to that node are sent to the next one. To be clear, this is not me using ds_next_dst() from FAILURE_ROUTE, this is once the node has already been put in probing or inactive. Also, the problem is not the hashing algorithm. I am hashing on call-id, and it gives me a very even spread between my servers. However, when one of them goes down, all of the calls that would have been allocated to it are instead allocated to the next server in the list. This creates one server with double the calls, overloading its capacity. It would seem simple to hash the calls only over the active servers. I am using version 1.6.2. Is this something that is fixed in later versions? Or am I not configuring OpenSIPS correctly? Regards, Alejandro ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Question on dispatcher module
Thank you Vlad, just realized it was a stupid question due to using Record Route. I just was confused by the wording on the dispatcher page. I already configured the load balancer module, but I think the dispatcher is more appropriate for my use case. Thanks for the answer. Regards, Alex On Thu, Sep 29, 2011 at 10:28 AM, Vlad Paiu wrote: > Hello, > > Here is a nice tutorial about how to do load-balacing between several > gateways : > http://www.opensips.org/Resources/DocsTutLoadbalancing > > You can force sequential requests to take the same path as the original > INVITE message by using the Record-Route mechanism. So basically you will > load-balance just the initial requests ( INVITE ), and let the sequential > requests within the dialog follow the same path. > > Regards, > > Vlad Paiu > OpenSIPS Developer > > > On 09/28/2011 08:11 PM, Alejandro Recarey wrote: >> >> Hello all, >> >> I was reading the documentation on the dispatcher module and it says: >> >> "Is dispatcher dialog stateful? >> >> No. Dispatcher is stateless, although some distribution algorithms are >> designed to select same destination for subsequent requests of the >> same dialog (e.g., hashing the call-id)." >> >> I am trying to load balance calls between different asterisk gateways, >> and I think the round-robin algorithm would be ideal (I would like the >> option of having a weighted round robin, but that is beside the >> point). I don't understand the use of the dispatcher module if, for >> example, the CANCEL request from the originating caller is sent to a >> different asterisk box than the one that had the INVITE request. As >> far as I can read into the module, there is no guarantee that the >> requests in the same dialog will go to the same box. >> >> How can I setup the dispatcher to load balance between asterisk gateways? >> >> Regards, >> >> Alex >> >> ___ >> Users mailing list >> Users@lists.opensips.org >> http://lists.opensips.org/cgi-bin/mailman/listinfo/users > > ___ > Users mailing list > Users@lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] Question on dispatcher module
Hello all, I was reading the documentation on the dispatcher module and it says: "Is dispatcher dialog stateful? No. Dispatcher is stateless, although some distribution algorithms are designed to select same destination for subsequent requests of the same dialog (e.g., hashing the call-id)." I am trying to load balance calls between different asterisk gateways, and I think the round-robin algorithm would be ideal (I would like the option of having a weighted round robin, but that is beside the point). I don't understand the use of the dispatcher module if, for example, the CANCEL request from the originating caller is sent to a different asterisk box than the one that had the INVITE request. As far as I can read into the module, there is no guarantee that the requests in the same dialog will go to the same box. How can I setup the dispatcher to load balance between asterisk gateways? Regards, Alex ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Problems using OpenSIPS as a load balancer for asterisk gateways
I reinstalled Opensips to version 1.6.4 compiled from source, fresh install. I am still having these strange messages in my opensips log, and I get about 40 lines of error messages per second! I am very worried. A packet capture on port 5060 found normal sip packets and some stun packets, strange as my ATA's have no stun server configured. They are grandstream ATA's. These are the error messages. Does anybody know what they mean, or what might be causing them? Thanks for the help. Jun 10 02:46:53 c1opsip1 /usr/sbin/opensips[23034]: ERROR:core:parse_first_line: parsed so far: °°°í[ Jun 10 02:46:53 c1opsip1 /usr/sbin/opensips[23033]: ERROR:core:receive_msg: parse_msg failed Jun 10 02:46:53 c1opsip1 /usr/sbin/opensips[23029]: ERROR:core:parse_msg: message=<> Jun 10 02:46:53 c1opsip1 /usr/sbin/opensips[23030]: ERROR:core:receive_msg: parse_msg failed Jun 10 02:46:53 c1opsip1 /usr/sbin/opensips[23034]: INFO:core:parse_first_line: bad message Jun 10 02:46:53 c1opsip1 /usr/sbin/opensips[23033]: INFO:core:parse_first_line: empty or bad first line Jun 10 02:46:53 c1opsip1 /usr/sbin/opensips[23029]: ERROR:core:receive_msg: parse_msg failed Jun 10 02:46:53 c1opsip1 /usr/sbin/opensips[23030]: INFO:core:parse_first_line: empty or bad first line Jun 10 02:46:53 c1opsip1 /usr/sbin/opensips[23034]: ERROR:core:parse_msg: message=<> Jun 10 02:46:53 c1opsip1 /usr/sbin/opensips[23033]: INFO:core:parse_first_line: bad message Jun 10 02:46:53 c1opsip1 /usr/sbin/opensips[23029]: INFO:core:parse_first_line: empty or bad first line Jun 10 02:46:53 c1opsip1 /usr/sbin/opensips[23030]: INFO:core:parse_first_line: bad message Jun 10 02:46:53 c1opsip1 /usr/sbin/opensips[23034]: ERROR:core:receive_msg: parse_msg failed Jun 10 02:46:53 c1opsip1 /usr/sbin/opensips[23033]: ERROR:core:parse_msg: message=<> Jun 10 02:46:54 c1opsip1 /usr/sbin/opensips[23029]: INFO:core:parse_first_line: bad message Jun 10 02:46:54 c1opsip1 /usr/sbin/opensips[23030]: ERROR:core:parse_msg: message=<> Jun 10 02:46:54 c1opsip1 /usr/sbin/opensips[23033]: ERROR:core:receive_msg: parse_msg failed Jun 10 02:46:54 c1opsip1 /usr/sbin/opensips[23029]: ERROR:core:parse_msg: message=<> Jun 10 02:46:54 c1opsip1 /usr/sbin/opensips[23030]: ERROR:core:receive_msg: parse_msg failed Jun 10 02:46:54 c1opsip1 /usr/sbin/opensips[23034]: INFO:core:parse_first_line: empty or bad first line Jun 10 02:46:54 c1opsip1 /usr/sbin/opensips[23033]: INFO:core:parse_first_line: method not followed by SP Jun 10 02:46:54 c1opsip1 /usr/sbin/opensips[23029]: ERROR:core:receive_msg: parse_msg failed Jun 10 02:46:54 c1opsip1 /usr/sbin/opensips[23030]: INFO:core:parse_first_line: empty or bad first line Jun 10 02:46:54 c1opsip1 /usr/sbin/opensips[23034]: INFO:core:parse_first_line: bad message Jun 10 02:46:54 c1opsip1 /usr/sbin/opensips[23033]: INFO:core:parse_first_line: bad message Jun 10 02:46:54 c1opsip1 /usr/sbin/opensips[23029]: INFO:core:parse_first_line: empty or bad first line Jun 10 02:46:54 c1opsip1 /usr/sbin/opensips[23030]: INFO:core:parse_first_line: bad message Jun 10 02:46:54 c1opsip1 /usr/sbin/opensips[23034]: ERROR:core:parse_msg: message=<> Jun 10 02:46:54 c1opsip1 /usr/sbin/opensips[23033]: ERROR:core:parse_msg: message=<> Jun 10 02:46:54 c1opsip1 /usr/sbin/opensips[23029]: INFO:core:parse_first_line: bad message Jun 10 02:46:54 c1opsip1 /usr/sbin/opensips[23030]: ERROR:core:parse_msg: message=<> Jun 10 02:46:54 c1opsip1 /usr/sbin/opensips[23034]: ERROR:core:receive_msg: parse_msg failed Jun 10 02:46:54 c1opsip1 /usr/sbin/opensips[23033]: ERROR:core:receive_msg: parse_msg failed Jun 10 02:46:54 c1opsip1 /usr/sbin/opensips[23029]: ERROR:core:parse_msg: message=<> Jun 10 02:46:54 c1opsip1 /usr/sbin/opensips[23030]: ERROR:core:receive_msg: parse_msg failed Jun 10 02:46:54 c1opsip1 /usr/sbin/opensips[23034]: INFO:core:parse_first_line: empty or bad first line Jun 10 02:46:54 c1opsip1 /usr/sbin/opensips[23029]: ERROR:core:receive_msg: parse_msg failed Jun 10 02:46:54 c1opsip1 /usr/sbin/opensips[23030]: INFO:core:parse_first_line: empty or bad first line Jun 10 02:46:54 c1opsip1 /usr/sbin/opensips[23034]: INFO:core:parse_first_line: bad message Jun 10 02:46:54 c1opsip1 /usr/sbin/opensips[23033]: INFO:core:parse_first_line: empty or bad first line Jun 10 02:46:54 c1opsip1 /usr/sbin/opensips[23029]: INFO:core:parse_first_line: empty or bad first line Jun 10 02:46:54 c1opsip1 /usr/sbin/opensips[23030]: INFO:core:parse_first_line: bad message Jun 10 02:46:54 c1opsip1 /usr/sbin/opensips[23034]: ERROR:core:parse_msg: message=<> Jun 10 02:46:54 c1opsip1 /usr/sbin/opensips[23033]: INFO:core:parse_first_line: bad message Jun 10 02:46:54 c1opsip1 /usr/sbin/opensips[23029]: INFO:core:parse_first_line: bad message ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] Problems using OpenSIPS as a load balancer for asterisk gateways
Hello all, I am currently running 2 opensips, one for "inbound" calls and one for "outbound". My inbound OpenSIPS handles registrations and load balances the calls over asterisk gateways. The "outbound" opensips just proxies outbound calls for the VoIP operators who wish to receive all calls from the same IP address. I am trying to migrate customers from registering directly on my asterisk boxes and manually "load balancing" them between servers to registering in my opensips box and using opensips to load balance calls between asterisk servers. However, I am having some problems which are impeding my migration. I am getting the following logs in my inbound OpenSIPS instalation: Jun 7 17:09:12 c1opsip1 opensips[6365]: ERROR:core:parse_msg: message=<> Jun 7 17:09:12 c1opsip1 opensips[6365]: ERROR:core:receive_msg: parse_msg failed Jun 7 17:09:12 c1opsip1 opensips[6367]: INFO:core:parse_first_line: method not followed by SP Jun 7 17:09:12 c1opsip1 opensips[6367]: INFO:core:parse_first_line: bad message Jun 7 17:09:12 c1opsip1 opensips[6367]: ERROR:core:parse_msg: message=<> Jun 7 17:09:12 c1opsip1 opensips[6367]: ERROR:core:receive_msg: parse_msg failed Jun 7 17:09:12 c1opsip1 opensips[6367]: INFO:core:parse_first_line: empty or bad first line Jun 7 17:09:12 c1opsip1 opensips[6367]: INFO:core:parse_first_line: bad message Jun 7 17:09:12 c1opsip1 opensips[6367]: ERROR:core:parse_msg: message=<> Jun 7 17:09:12 c1opsip1 opensips[6367]: ERROR:core:receive_msg: parse_msg failed Jun 7 17:09:12 c1opsip1 opensips[6367]: ERROR:core:parse_first_line: bad request first line Jun 7 17:09:12 c1opsip1 opensips[6369]: INFO:core:parse_first_line: empty or bad first line Jun 7 17:09:12 c1opsip1 opensips[6371]: INFO:core:parse_first_line: empty or bad first line Jun 7 17:09:12 c1opsip1 opensips[6365]: INFO:core:parse_first_line: empty or bad first line Jun 7 17:09:12 c1opsip1 opensips[6367]: ERROR:core:parse_first_line: at line 0 char 10: Jun 7 17:09:12 c1opsip1 opensips[6369]: INFO:core:parse_first_line: bad message Jun 7 17:09:12 c1opsip1 opensips[6371]: INFO:core:parse_first_line: bad message Jun 7 17:09:12 c1opsip1 opensips[6365]: INFO:core:parse_first_line: bad message Jun 7 17:09:12 c1opsip1 opensips[6367]: ERROR:core:parse_first_line: parsed so far: � ��oC"x% Jun 7 17:09:12 c1opsip1 opensips[6369]: ERROR:core:parse_msg: message=<> Jun 7 17:09:12 c1opsip1 opensips[6371]: ERROR:core:parse_msg: message=<> Jun 7 17:09:12 c1opsip1 opensips[6365]: ERROR:core:parse_msg: message=<> It is installed on CentOS and the version is 1.6.2. Obviously I am worried at receiving so many errors in my OpenSIPS logs, but my outbound OpenSIPS installation does not show these errors. Of course, this new OpenSIPS is intalled to load balance inbound calls between my asterisk gateways, so it must handle registrations, while the other OpenSIPS does not handle registrations, just proxies outbound calls. I am having various problems with my "inbound" OpenSIPS and I believe they might be related to the errors I am receiving in my log. For example, most of the times calls work perfectly, but asterisk is the one who records the cdrs, and sometimes I get calls where "duration" is over 300 seconds, but "billsec" is 0. This never happened when customers registered directly to the asterisk server, and I suppose it means that somehow asterisk did not get the "BYE" message and did not use RTP to detect the end of the call, as it ususaly does. I have some more information if necessary and am recording all SIP packets to match them to the calls to see what is going wrong, but I wonder if anybody has had some experience in these issues and can maybe tell me what I am doing wrong? Since I am using asterisk with canreinvite=no, I am proxying the RTP packets through my asterisk boxes. Usualy this is enough to solve all of my NAT issues, but the problems I am having look suspiciously like NAT issues. Also, my location table in OpenSIPs has some entries like: contact = 'sip:134378@192.168.1.100:5074', That is a private IP! Does OpenSIPS not store the public IP anywhere? This is my asterisk configuration for the peer that represents my OpenSIPS. [voip-41] type=peer host=XXX.XXX.XXX.41 disallow=all allow=g729 allow=gsm allow=alaw canreinvite=no quality=yes context=opensips insecure=invite,port nat=yes This is my opensips.cfg file: @opensips.cfg ### Global Parameters # debug=3 log_stderror=no log_facility=LOG_LOCAL4 fork=yes children=4 # domain aliases alias=sip.voip.com:5060 /* uncomment the following lines to enable debugging */ #debug=6 #log_stderror=yes /* uncomment the next line to disable TCP (default on) */ #disable_tcp=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 IP
Re: [OpenSIPS-Users] Errors at opensips startup
Solved, sorry for the bother. It's related to errors in the comunication between syslog and opensips because of a faulty configuration. Thanks anyways! Alex On Wed, May 25, 2011 at 7:43 PM, Alejandro Recarey wrote: > I am getting the following errors at opensips startup: > > > May 25 19:41:40 c1opsip1 opensips[5417]: INFO:core:sig_usr: signal 15 received > May 25 19:41:40 c1opsip1 opensips[5411]: INFO:core:sig_usr: signal 15 received > May 25 19:41:40 c1opsip1 opensips[5409]: INFO:core:sig_usr: signal 15 received > May 25 19:41:40 c1opsip1 opensips[5407]: INFO:core:sig_usr: signal 15 received > May 25 19:41:40 c1opsip1 opensips[5394]: INFO:core:sig_usr: signal 15 received > May 25 19:41:40 c1opsip1 opensips[5406]: INFO:core:sig_usr: signal 15 received > May 25 19:41:40 c1opsip1 opensips[5402]: INFO:core:sig_usr: signal 15 received > May 25 19:41:40 c1opsip1 opensips[5397]: INFO:core:sig_usr: signal 15 received > May 25 19:41:40 c1opsip1 opensips[5403]: INFO:core:sig_usr: signal 15 received > May 25 19:41:45 c1opsip1 opensips: INFO:core:init_tcp: using epoll_lt > as the TCP io watch method (auto detected) > May 25 19:41:45 c1opsip1 opensips[5479]: NOTICE:core:main: version: > opensips 1.6.2-notls (i386/linux) > May 25 19:41:45 c1opsip1 opensips[5479]: INFO:core:main: using 32 Mb > shared memory > May 25 19:41:45 c1opsip1 opensips[5479]: INFO:core:main: using 1 Mb > private memory per process > May 25 19:41:45 c1opsip1 opensips[5479]: NOTICE:signaling:mod_init: > initializing module ... > May 25 19:41:45 c1opsip1 opensips[5479]: INFO:sl:mod_init: > Initializing StateLess engine > May 25 19:41:45 c1opsip1 opensips[5479]: INFO:tm:mod_init: TM - > initializing... > May 25 19:41:45 c1opsip1 opensips[5479]: INFO:maxfwd:mod_init: initializing... > May 25 19:41:45 c1opsip1 opensips[5479]: INFO:usrloc:ul_init_locks: > locks array size 512 > May 25 19:41:45 c1opsip1 opensips[5479]: INFO:registrar:mod_init: > initializing... > May 25 19:41:45 c1opsip1 opensips[5479]: INFO:textops:mod_init: > initializing... > May 25 19:41:45 c1opsip1 opensips[5479]: INFO:xlog:mod_init: initializing... > May 25 19:41:45 c1opsip1 opensips[5479]: INFO:acc:mod_init: initializing... > May 25 19:41:45 c1opsip1 opensips[5479]: INFO:auth:mod_init: initializing... > May 25 19:41:45 c1opsip1 opensips[5479]: INFO:auth_db:mod_init: > initializing... > May 25 19:41:45 c1opsip1 opensips[5479]: INFO:dialog:mod_init: Dialog > module - initializing > May 25 19:41:45 c1opsip1 opensips[5479]: INFO:load_balancer:mod_init: > Load-Balancer module - initializing > May 25 19:41:45 c1opsip1 opensips[5479]: > INFO:core:probe_max_receive_buffer: using a UDP receive buffer of 255 > kb > May 25 19:41:45 c1opsip1 last message repeated 2 times > May 25 19:41:48 c1opsip1 opensips[5494]: INFO:core:parse_first_line: > empty or bad first line > May 25 19:41:48 c1opsip1 opensips[5497]: INFO:core:parse_first_line: > method not followed by SP > May 25 19:41:48 c1opsip1 opensips[5494]: INFO:core:parse_first_line: > bad message > May 25 19:41:48 c1opsip1 opensips[5497]: INFO:core:parse_first_line: > bad message > May 25 19:41:48 c1opsip1 opensips[5494]: ERROR:core:parse_msg: message=<> > May 25 19:41:48 c1opsip1 opensips[5497]: ERROR:core:parse_msg: message=<> > May 25 19:41:48 c1opsip1 opensips[5494]: ERROR:core:receive_msg: > parse_msg failed > May 25 19:41:48 c1opsip1 opensips[5497]: ERROR:core:receive_msg: > parse_msg failed > May 25 19:41:48 c1opsip1 opensips[5494]: INFO:core:parse_first_line: > empty or bad first line > May 25 19:41:48 c1opsip1 opensips[5494]: INFO:core:parse_first_line: > bad message > May 25 19:41:48 c1opsip1 opensips[5494]: ERROR:core:parse_msg: message=<> > May 25 19:41:48 c1opsip1 opensips[5494]: ERROR:core:receive_msg: > parse_msg failed > May 25 19:41:48 c1opsip1 opensips[5492]: INFO:core:parse_first_line: > method not followed by SP > May 25 19:41:48 c1opsip1 opensips[5492]: INFO:core:parse_first_line: > bad message > May 25 19:41:48 c1opsip1 opensips[5492]: ERROR:core:parse_msg: message=<> > May 25 19:41:48 c1opsip1 opensips[5492]: ERROR:core:receive_msg: > parse_msg failed > > > Can somebody help me with this? What do they mean? Are they serious? > > Regards, > > Alex > ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] Errors at opensips startup
I am getting the following errors at opensips startup: May 25 19:41:40 c1opsip1 opensips[5417]: INFO:core:sig_usr: signal 15 received May 25 19:41:40 c1opsip1 opensips[5411]: INFO:core:sig_usr: signal 15 received May 25 19:41:40 c1opsip1 opensips[5409]: INFO:core:sig_usr: signal 15 received May 25 19:41:40 c1opsip1 opensips[5407]: INFO:core:sig_usr: signal 15 received May 25 19:41:40 c1opsip1 opensips[5394]: INFO:core:sig_usr: signal 15 received May 25 19:41:40 c1opsip1 opensips[5406]: INFO:core:sig_usr: signal 15 received May 25 19:41:40 c1opsip1 opensips[5402]: INFO:core:sig_usr: signal 15 received May 25 19:41:40 c1opsip1 opensips[5397]: INFO:core:sig_usr: signal 15 received May 25 19:41:40 c1opsip1 opensips[5403]: INFO:core:sig_usr: signal 15 received May 25 19:41:45 c1opsip1 opensips: INFO:core:init_tcp: using epoll_lt as the TCP io watch method (auto detected) May 25 19:41:45 c1opsip1 opensips[5479]: NOTICE:core:main: version: opensips 1.6.2-notls (i386/linux) May 25 19:41:45 c1opsip1 opensips[5479]: INFO:core:main: using 32 Mb shared memory May 25 19:41:45 c1opsip1 opensips[5479]: INFO:core:main: using 1 Mb private memory per process May 25 19:41:45 c1opsip1 opensips[5479]: NOTICE:signaling:mod_init: initializing module ... May 25 19:41:45 c1opsip1 opensips[5479]: INFO:sl:mod_init: Initializing StateLess engine May 25 19:41:45 c1opsip1 opensips[5479]: INFO:tm:mod_init: TM - initializing... May 25 19:41:45 c1opsip1 opensips[5479]: INFO:maxfwd:mod_init: initializing... May 25 19:41:45 c1opsip1 opensips[5479]: INFO:usrloc:ul_init_locks: locks array size 512 May 25 19:41:45 c1opsip1 opensips[5479]: INFO:registrar:mod_init: initializing... May 25 19:41:45 c1opsip1 opensips[5479]: INFO:textops:mod_init: initializing... May 25 19:41:45 c1opsip1 opensips[5479]: INFO:xlog:mod_init: initializing... May 25 19:41:45 c1opsip1 opensips[5479]: INFO:acc:mod_init: initializing... May 25 19:41:45 c1opsip1 opensips[5479]: INFO:auth:mod_init: initializing... May 25 19:41:45 c1opsip1 opensips[5479]: INFO:auth_db:mod_init: initializing... May 25 19:41:45 c1opsip1 opensips[5479]: INFO:dialog:mod_init: Dialog module - initializing May 25 19:41:45 c1opsip1 opensips[5479]: INFO:load_balancer:mod_init: Load-Balancer module - initializing May 25 19:41:45 c1opsip1 opensips[5479]: INFO:core:probe_max_receive_buffer: using a UDP receive buffer of 255 kb May 25 19:41:45 c1opsip1 last message repeated 2 times May 25 19:41:48 c1opsip1 opensips[5494]: INFO:core:parse_first_line: empty or bad first line May 25 19:41:48 c1opsip1 opensips[5497]: INFO:core:parse_first_line: method not followed by SP May 25 19:41:48 c1opsip1 opensips[5494]: INFO:core:parse_first_line: bad message May 25 19:41:48 c1opsip1 opensips[5497]: INFO:core:parse_first_line: bad message May 25 19:41:48 c1opsip1 opensips[5494]: ERROR:core:parse_msg: message=<> May 25 19:41:48 c1opsip1 opensips[5497]: ERROR:core:parse_msg: message=<> May 25 19:41:48 c1opsip1 opensips[5494]: ERROR:core:receive_msg: parse_msg failed May 25 19:41:48 c1opsip1 opensips[5497]: ERROR:core:receive_msg: parse_msg failed May 25 19:41:48 c1opsip1 opensips[5494]: INFO:core:parse_first_line: empty or bad first line May 25 19:41:48 c1opsip1 opensips[5494]: INFO:core:parse_first_line: bad message May 25 19:41:48 c1opsip1 opensips[5494]: ERROR:core:parse_msg: message=<> May 25 19:41:48 c1opsip1 opensips[5494]: ERROR:core:receive_msg: parse_msg failed May 25 19:41:48 c1opsip1 opensips[5492]: INFO:core:parse_first_line: method not followed by SP May 25 19:41:48 c1opsip1 opensips[5492]: INFO:core:parse_first_line: bad message May 25 19:41:48 c1opsip1 opensips[5492]: ERROR:core:parse_msg: message=<> May 25 19:41:48 c1opsip1 opensips[5492]: ERROR:core:receive_msg: parse_msg failed Can somebody help me with this? What do they mean? Are they serious? Regards, Alex ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] Problem with the configuration of permissions module
Hi all, I have been checking the SIP security of my configuration and am shocked to find out that my configuration is currently not working correctly. I am using OpenSIPS 1.6.2 and the check_source_address function to only allow calls from my own domain but it seems that no matter what I write to the address table, I can always call! That means that any IP address has access to my OpenSIPS server for outbound calls. Now, I am certain that it must be a problem with my configuration of the opensips.cfg file, so any help would be appreciated to find out the problem. I am using the permissions module with the following configuration: mysql> select * from address; ++-+---+--+--+---+--+--+ | id | grp | ip| mask | port | proto | pattern | context_i| ++-+---+--+--+---+--+--+ | 1 | 0 | 130.117.93.0 | 25 | 5060 | any | ^sip:.*$ | | ++-+---+--+--+---+--+--+ My route table is as follows: route{ if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); exit; } if (has_totag()) { # sequential request withing a dialog should # take the path determined by record-routing if (loose_route()) { if (is_method("BYE")) { setflag(1); # do accounting ... setflag(3); # ... 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. record_route(); } # route it out to whatever destination was set by loose_route() # in $du (destination URI). route(1); } else { /* uncomment the following lines if you want to enable presence */ ##if (is_method("SUBSCRIBE") && $rd == "your.server.ip.address") { ### in-dialog subscribe requests ##route(2); ##exit; ##} 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; } #initial requests # CANCEL processing if (is_method("CANCEL")) { if (t_check_trans()) t_relay(); exit; } t_check_trans(); if (!(method=="REGISTER") && from_uri==myself) /*no multidomain version*/ { # Here is where I check that the INVITE comes from my servers if(!check_source_address("0")){ sl_send_reply("403", "Forbidden"); if (!proxy_authorize("", "subscriber")) { proxy_challenge("", "0"); exit; } if (!db_check_from()) { sl_send_reply("403","Forbidden auth ID"); exit; } consume_credentials(); # caller authenticated } } # 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(); # account only INVITEs if (is_method("INVITE")) { setflag(1); # do accounting } if (!uri==myself) { append_hf("P-hint: outbound\r\n"); # Do not act as an open relay # only allow requests from handled domains if(from_uri==myself){ route(1); } else { sl_send_reply("403", "Not here"); } } # requests for my domain if (is_method("PUBLISH")) { sl_send_reply("503", "Service Unavailable"); exit; } if (is_method("REGISTER")) { # authenticate the REGISTER requests (uncomment to enable auth) if (!www_authorize("", "subscriber")) { www_challenge("", "0"); exit; } if (!db_check_to()) { sl_send_reply("403","Forbidden auth ID"); exit; } if (!save("location")) sl_reply_error(); exit; } if ($rU==NULL) { # request with no Username in RURI sl_send_reply("484","Address Incomplete"); exit; } # ROUTING happens here - - - - -
Re: [OpenSIPS-Users] Load_Balancer module - disabling GW from routing script
Thank you Bogdan, makes a lot of sense! On Wed, Sep 22, 2010 at 11:43 AM, Bogdan-Andrei Iancu wrote: > Hi Alejandro, > > You need to extend your test to catch only "locally generated timeouts" > and to skip "received timeouts". For this use the t_local_replied() > functions : > http://www.opensips.org/html/docs/modules/1.6.x/tm.html#id272062 > > And make the condition like: > > > if (t_check_status("(408)") && t_local_replied("all")) { > > > Regards, > Bogdan > > Alejandro Recarey wrote: >> Hi all, >> >> I am currently trying to enable GW disabling from inside the routing >> script with the load balancer. >> >> I managed to get it working reading the module documentation, but now >> I have a problem. I want the gateway to be disabled only if it is >> unreachable, that is, if it does not answer at all to the SIP INVITE >> being sent, but the Asterisk Gatways are being disabled all the time, >> every 5 - 10 minutes. The part of routing script that takes care of >> the load balancing is: >> >> >> . . . (ommited) . . . >> >> # Outbound to Load Balancer # >> if(uri=~"^sip:5378[0-9]*+@"){ >> route(7); >> } >> >> >> # Load Balancer # >> route[7] { >> if (load_balance("2","pstn","1")) { >> if (is_method("INVITE")) { >> t_on_branch("2"); >> t_on_reply("2"); >> t_on_failure("2"); #custom failure route for LB >> } >> >> if (!t_relay()) { >> sl_reply_error(); >> }; >> exit; >> >> } >> else{ >> sl_send_reply("503","Service full"); >> exit; >> } >> } >> >> >> # Failure route for Load Balancer >> failure_route[2] { >> if (t_was_cancelled()) { >> exit; >> } >> >> # If status is 408 - Timeout, disable route >> if (t_check_status("(408)")) { >> lb_disable(); >> >> # Try to load balance once again >> if ( load_balance("2","pstn","1") ) { >> t_on_failure("1"); >> t_relay(); >> } else { >> t_reply("503","Service Unavailable"); >> } >> } >> } >> >> If I execute opensipctl fifo lb_list: >> >> Destination:: sip:x.x.x.x id=5 group=2 enabled=yes auto-re=on >> Resource:: pstn max=90 load=13 >> Destination:: sip:x.x.x.x id=6 group=2 enabled=yes auto-re=on >> Resource:: pstn max=60 load=9 >> Destination:: sip:x.x.x.x id=7 group=2 enabled=yes auto-re=on >> Resource:: pstn max=60 load=9 >> >> >> As you can see, I only disable the GW if I receive a SIP 408 message. >> I thought this message would only be generated if the SIP INVITE timed >> out, but it seems Asterisk is sending a 408 message for normal call >> reasons (maybe when the dialed party does not pick up and the dial >> times out??) >> >> This is a huge problem because my termination GW are being disabled >> all of the time, and randomly. Since my OpenSIPS server is in >> production and I cannot reload config until tonight I have setup a >> cronjob that enables the gateways every minute, but it's hardly an >> optimal solution ;) >> >> Does anybody have experience with the setup described? (OpenSIPS >> Load_Balancer + Asterisk with in script disable of bad GW's?). Any >> pointers would be appreciated, thanks! >> >> ___ >> Users mailing list >> Users@lists.opensips.org >> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >> >> > > > -- > Bogdan-Andrei Iancu > OpenSIPS Bootcamp > 15 - 19 November 2010, Edison, New Jersey, USA > www.voice-system.ro > > > ___ > Users mailing list > Users@lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] Load_Balancer module - disabling GW from routing script
Hi all, I am currently trying to enable GW disabling from inside the routing script with the load balancer. I managed to get it working reading the module documentation, but now I have a problem. I want the gateway to be disabled only if it is unreachable, that is, if it does not answer at all to the SIP INVITE being sent, but the Asterisk Gatways are being disabled all the time, every 5 - 10 minutes. The part of routing script that takes care of the load balancing is: . . . (ommited) . . . # Outbound to Load Balancer # if(uri=~"^sip:5378[0-9]*+@"){ route(7); } # Load Balancer # route[7] { if (load_balance("2","pstn","1")) { if (is_method("INVITE")) { t_on_branch("2"); t_on_reply("2"); t_on_failure("2"); #custom failure route for LB } if (!t_relay()) { sl_reply_error(); }; exit; } else{ sl_send_reply("503","Service full"); exit; } } # Failure route for Load Balancer failure_route[2] { if (t_was_cancelled()) { exit; } # If status is 408 - Timeout, disable route if (t_check_status("(408)")) { lb_disable(); # Try to load balance once again if ( load_balance("2","pstn","1") ) { t_on_failure("1"); t_relay(); } else { t_reply("503","Service Unavailable"); } } } If I execute opensipctl fifo lb_list: Destination:: sip:x.x.x.x id=5 group=2 enabled=yes auto-re=on Resource:: pstn max=90 load=13 Destination:: sip:x.x.x.x id=6 group=2 enabled=yes auto-re=on Resource:: pstn max=60 load=9 Destination:: sip:x.x.x.x id=7 group=2 enabled=yes auto-re=on Resource:: pstn max=60 load=9 As you can see, I only disable the GW if I receive a SIP 408 message. I thought this message would only be generated if the SIP INVITE timed out, but it seems Asterisk is sending a 408 message for normal call reasons (maybe when the dialed party does not pick up and the dial times out??) This is a huge problem because my termination GW are being disabled all of the time, and randomly. Since my OpenSIPS server is in production and I cannot reload config until tonight I have setup a cronjob that enables the gateways every minute, but it's hardly an optimal solution ;) Does anybody have experience with the setup described? (OpenSIPS Load_Balancer + Asterisk with in script disable of bad GW's?). Any pointers would be appreciated, thanks! ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] How to bill SIP session time correctly?
Hi all, and thanks for taking the time to read my mail. I am currently studying OpenSIPS to replace Asterisk in a network that I administer. I am doing this because Asterisk call quality quickly starts degrading once you hit 100 simultaneous calls. Although NAT issues are not terribly important (most of my calls are routed directly to VoIP carriers) I am routing RTP through my asterisk boxes, this allows me to bill call length without making errors. When using a pure SIP solution like OpenSIPS, and session timers are not enough, how do you bill your customers? I have seen that one solution is to use MediaProxy or RTP proxy to proxy the RTP stream and inform OpenSIPS when the RTP stream terminates. Won't this have the same scalability problems as Asterisk? Is it a robust solution? Do any of you have experience using OpenSIPS paired with MediaProxy or RTPproxy to correct call times? Does this have a large impact on the scalability of the solution? Thanks for the replies! Alex ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Outbound gateway selection
> asterisk should not be confused at all - according to SIP, proxies on > the way may change the RURI without breaking anything. The idea is to > change only the RURI (for original INVITE), so that the SIP dialog will > be consistent for its whole duration. Hello Bogdan, thank you for the insight into the SIP protocol! Your reply was just what I needed, thanks. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] Recommended module for disabling gateways?
I'm currently using OpenSIPS as an outbound proxy for my asterisk boxes, presenting only one IP to my providers. However, sometimes, their service is less than stellar and it goes down, which is why I want to be able to do OPTIONS probing and disable failed gateways, and re-enable them when they go up. OpenSIPS has many routing modules with this capability (dynamic routing, lcr, dispatcher etc) but my needs are actually quite simple. Is there any particular one you recommend for this task? Thanks! Alex ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] Outbound gateway selection
I am using OpenSIPS to load balance incoming calls between my asterisk boxes, with great results! The LB module is perfect for this. I am currently configuring OpenSIPS to also act as an outbound proxy to my asterisk boxes. This is because some VoIP providers want you to send them all calls from a single IP address. However, I have a problem with the setup. The authentification of the incoming calls is done with the "permission.so" module and works perfectly. However, because the destination URI always has the IP address of my OpenSIPS box, I have no way to distinguish what carrier (IP address) I should actually be sending the call to. The only solution I have found so far is to add an internal prefix (for example 1# for carrier 1 with IP X, 2# for carrier 2 with IP Y etc), this way I can match the uri like if(uri=~"^sip:1#[0-9]*+@"){ rewritehostport("x.x.x.x"); route(1) } if(uri=~"^sip:2#[0-9]*+@"){ rewritehostport("y.y.y.y"); route(1) } However, I have to strip this prefix when forwarding the invite to my carrier, because my carrier will not accept the prefix. This is easily done with the dialplan module, but I also have to _add it back_ when forwarding RE-INVITES, TRYING, ACK or other messages that come from my carrier, so that asterisk does not get confused when to: or uri tags do not match. This seems like an ugly solution, or maybe I don't know how to set it up? What is the best way to setup this scenario? Thank you for your help! ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Getting asterisk to reply to OPTIONS keepalive
Great help, thank you both! ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] Getting asterisk to reply to OPTIONS keepalive
Hi all, I'm trying to use the keepalive / ping option in OpenSIPS Loadbalancer module, but asterisk always responds with a 404 not found. Has anybody managed to get this working with Asterisk 1.6.1.X + OpenSIPS 1.6.2 ? Thanks! Alex ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] RES: ERROR: Error opening OpenSIPS's FIFO /tmp/opensips_fifo
That fixed it, thanks for the help!!! Regards, Alex On Mon, Mar 1, 2010 at 8:46 PM, Flavio E. Goncalves wrote: > Add the following parameter > > modparam("mi_fifo", "fifo_mode",0666) > > Just in case, check your opensipsctlrc file. This file controls where > opensipsctl finds the FIFO. > > Flavio E. Goncalves > > -Mensagem original- > De: users-boun...@lists.opensips.org > [mailto:users-boun...@lists.opensips.org] Em nome de Alejandro Recarey > Enviada em: Monday, March 01, 2010 4:43 PM > Para: users@lists.opensips.org > Assunto: [OpenSIPS-Users] ERROR: Error opening OpenSIPS's FIFO > /tmp/opensips_fifo > > Hello everybody, > > I have just made a fresh install of OpenSIPS 1.6.1 using the > http://debian.leurent.eu/ mirror. > > I am using debian lenny 5.0. I have read all of the tutorials and I > believe I have a working configuration. OpenSIPS is running and my cfg > file is loaded without problems. > > However, whenever y try to run the command opensipsctl ul show, or > opensipsctl monitor I get the following error ERROR: Error opening > OpenSIPS's FIFO /tmp/opensips_fifo > > Yes, I have the line modparam("mi_fifo", "fifo_name", > "/tmp/opensips_fifo") uncommented and the mi_fifo module is also > uncommented. The file /usr/lib/opensips/modules/mi_fifo.so exists. > > What am I doing wrong?? > > I am attaching my opensips.cfg file contents. > > Regards, > > Alex > > > > # > # $Id: opensips.cfg 6046 2009-08-30 17:13:08Z bogdan_iancu $ > # > # OpenSIPS basic configuration script > # by Anca Vamanu > # > # Please refer to the Core CookBook at: > # http://www.opensips.org/index.php?n=Resources.DocsCookbooks > # 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=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 > > /* 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=5060 > > /* 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.1.2:5060 > > > ### Modules Section > > #set module path > mpath="/usr/lib/opensips/modules/" > > /* uncomment next line for MySQL DB support */ > loadmodule "db_mysql.so" > loadmodule "signaling.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.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 "pr
Re: [OpenSIPS-Users] ERROR: Error opening OpenSIPS's FIFO /tmp/opensips_fifo
Hello Brian, I'm running OpenSIPS as opensips:opensips. Although I checked that /tmp/ has chmod 777, I created the opensips user as a system user so it might be more restricted. Maybe that is the problem? I don't mind running OpenSIPS as root, as it will be the only service running on my box (it is a dedicated OpenSIPS server). Where do I configure a new user, because I can't find the entry in opensips.cfg, opensipsctlrc or osipsconsolerc? Or should I just give the opensips user the required permissions? Thank you for your help!! Alex ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] ERROR: Error opening OpenSIPS's FIFO /tmp/opensips_fifo
Hello everybody, I have just made a fresh install of OpenSIPS 1.6.1 using the http://debian.leurent.eu/ mirror. I am using debian lenny 5.0. I have read all of the tutorials and I believe I have a working configuration. OpenSIPS is running and my cfg file is loaded without problems. However, whenever y try to run the command opensipsctl ul show, or opensipsctl monitor I get the following error ERROR: Error opening OpenSIPS's FIFO /tmp/opensips_fifo Yes, I have the line modparam("mi_fifo", "fifo_name", "/tmp/opensips_fifo") uncommented and the mi_fifo module is also uncommented. The file /usr/lib/opensips/modules/mi_fifo.so exists. What am I doing wrong?? I am attaching my opensips.cfg file contents. Regards, Alex # # $Id: opensips.cfg 6046 2009-08-30 17:13:08Z bogdan_iancu $ # # OpenSIPS basic configuration script # by Anca Vamanu # # Please refer to the Core CookBook at: # http://www.opensips.org/index.php?n=Resources.DocsCookbooks # 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=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 /* 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=5060 /* 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.1.2:5060 ### Modules Section #set module path mpath="/usr/lib/opensips/modules/" /* uncomment next line for MySQL DB support */ loadmodule "db_mysql.so" loadmodule "signaling.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.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) # - registrar params - /* uncomment the next line not to allow more than 10 contacts per AOR */ #modparam("registrar", "max_contacts", 10) # - usrloc params - #modparam("usrloc", "db_mode", 0) /* uncomment the following lines if you want to enable DB persistency for location entries */ modparam("usrloc", "db_mode", 2) modparam("usrloc", "db_url", "mysql://opensips:opensip...@localhost/opensips") # - uri params - modparam("uri", "use_uri_table", 0) # - 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) # - auth_db para