[Users] Re: Users Digest, Vol 13, Issue 4

Daniel-Constantin Mierla daniel at voice-system.ro
Thu Jun 1 17:44:08 CEST 2006


Hello,

On 06/01/06 15:21, Padmaja RV wrote:
> Hi all!
> can anyone tell me how to check the syntax of the openser.cfg file 
> after adding code for new modules?
you can check the configuration file without actually starting openser with:

openser -c -f /path/to/openser.cfg

See openser -h for more details.

> also after saving the file with the changes in it, should the execute 
> permissions be set to it? currently my openser.cfg does not have 
> execute permission for anyone ie owner or user or group.

the configuration file does not need execute permission, it has to be 
only readable by the openser.

Cheers,
Daniel


>
> Please let me know asap
> Thanks and Regards,
> Padmaja
> ----- Original Message ----- From: <users-request at openser.org>
> To: <users at openser.org>
> Sent: Thursday, June 01, 2006 5:08 PM
> Subject: Users Digest, Vol 13, Issue 4
>
>
>> Send Users mailing list submissions to
>> users at openser.org
>>
>> To subscribe or unsubscribe via the World Wide Web, visit
>> http://openser.org/cgi-bin/mailman/listinfo/users
>> or, via email, send a message with subject or body 'help' to
>> users-request at openser.org
>>
>> You can reach the person managing the list at
>> users-owner at openser.org
>>
>> When replying, please edit your Subject line so it is more specific
>> than "Re: Contents of Users digest..."
>>
>>
>> Today's Topics:
>>
>>   1. No /var/run/openser.pid file found (Padmaja RV)
>>   2. Re: Call Hunting: use Avpop or LCR module ?
>>      (Daniel-Constantin Mierla)
>>   3. Re: Call Hunting: use Avpop or LCR module ?
>>      (Daniel-Constantin Mierla)
>>
>>
>> ----------------------------------------------------------------------
>>
>> Message: 1
>> Date: Thu, 1 Jun 2006 15:34:14 +0530
>> From: "Padmaja RV" <padmaja.rv at vodcalabs.com>
>> Subject: [Users] No /var/run/openser.pid file found
>> To: "Jayesh Nambiar" <voip_freak at yahoo.co.in>
>> Cc: users at openser.org
>> Message-ID: <001d01c68562$beea6780$0f32a8c0 at systemtest3>
>> Content-Type: text/plain; charset="iso-8859-1"
>>
>> Hi,
>>         I have openser working now. i have installed it from src 
>> yesterday after manually deleting all the files installed from 
>> binaries. i have added database support and now it is working fine 
>> with authentication. i have tried openserctl start and stop and the 
>> first time they worked fine. but now if i type openserctl start, it 
>> either tells me no /var/run/openser.pid file  found or it shows 
>> starting openser and then the cursor keeps blinking but i dont see 
>> the pid number of openser. but registrations keep happening . pls let 
>> me know what to do..
>>
>> Thanks a lot for all the help.
>> Regards,
>> Padmaja
>> ----- Original Message -----  From: Jayesh Nambiar
>>  To: Padmaja RV
>>  Sent: Thursday, June 01, 2006 1:29 PM
>>  Subject: Re: [Users] Re: how to run openser through monit daemon?
>>
>>
>>  Hi,
>>  Sorry, but I never tried installing it from binaries. So i have no 
>> idea about whether installing it from src will overwrite or not. But 
>> I guess, it should overwrite. But not very sure.
>>  Another long way to delete is only locating the openser files and 
>> removing it mannually.
>>  w/regards,
>>  Jayesh
>>
>>  Padmaja RV <padmaja.rv at vodcalabs.com> wrote:
>>    Hi Jayesh,
>>    I think you were mentioning about openser-1.0.1_src.tar.gz (that 
>> is from src directory of openser download) and i installed from bin 
>> directory of openser download area. The bin's tar ball is 
>> openser-1.0.1_linux_i386.tar.gz. and when that is installed, it does 
>> not show any openser-1.0.1 directory. it automatically loads various 
>> modules at their respective places and there is no Makefile i could 
>> see in it to edit it for mysql support. I have now openser from src. 
>> it is exactly as u mentioned.... this i have downloaded and installed 
>> as a user and not as root just to verify the directory structure of 
>> openser. i guess it is the right way to do and now i want to install 
>> it as root. should i delete the previous openser installations in 
>> that path and then install or when i install the src, it will 
>> automatically overwrite the existing onces? i am asking this because 
>> as root if i delete them it might damage the file system. again 
>> thanks so much....pls help me out!
>>    Thanks and Regards,
>>    Padmaja
>>      ----- Original Message -----      From: Jayesh Nambiar
>>      To: users at openser.org
>>      Cc: padmaja.rv at vodcalabs.com
>>      Sent: Wednesday, May 31, 2006 3:42 PM
>>      Subject: [Users] Re: how to run openser through monit daemon?
>>
>>
>>        Hi padmaja,
>>        I guess there should have been a standalone directory called 
>> openser1.0.1 after you untar the .tar.gz file using tar -xzvf. In 
>> that directory itself there is file called Makefile in which the 
>> mysql module is excluded by default.
>>        Did you also check the logs in /var/log/messages about what is 
>> the error. Those messages are helpful to debug.
>>        You dont always need to go to sbin to start openser, there is 
>> a command called openserctl start to start it.
>>        I have a suggestion for you. Please visit onsip.org and 
>> register on that site. They have very good getting started documents 
>> which will help you.
>>        You can then structure your openser.cfg the way you want.
>>
>>        w/regards,
>>        Jayesh.
>>
>>
>>        Hi Jayesh,
>>        Thank you so much for the reply. I have downloaded the version 
>> openser-1.0.1 from cvs. I thought that is a stable release and no 
>> changes are going to be made to it. Do i have to again revert to the 
>> tar.gx version? Also please look at what happened when i previously 
>> installed the .tar.gz version of openser before doing the cvs
>>
>>
>>        1. downloaded openser-1.0.1-linux_i386.tar.gz version as root.
>>        2. It is now under / (the root directory). after that i did 
>> unzip and untar on that.
>>        3. the file and modules are loaded into the subdirectories of 
>> the /usr directory.I could not anywhere find a standalone directory 
>> called openser-1.0.1 with the directory sip-server in it. also there 
>> is no makefile here.... (All these i see when i download it thru CVS 
>> in the /usr/local/src directory.)
>>        4. I tried to see through the list for the module mysql.so but 
>> i could not find it....and so for uri_db module also. these modules 
>> are present when i install openser thru cvs
>>        5. i did not do any make on it. I thought it is precompiled 
>> version and will automatically get installed when i do the untar and 
>> unzip. please correct me if the tar version also has to go thru make
>>        6. i ran openser through /usr/local/sbin/openser start. and it 
>> ran successfully... it showd the tcp and udp ports on which it is 
>> running..i could register my sip UA without authentication.
>>        7. then i wanted to set it up for mysql support. i edited the 
>> config file and uncommented the necessary modules and tried to create 
>> the openser databse in mysql. here it failed stating ha1 calculation 
>> failed.. also it states there is no mysql.so module which is true.
>>
>>        Please let me know if I have made any mistakes in the 
>> installation process.... I am new to openser.. now if i want to 
>> revert to .tar.gz version, will all the openser modules and config 
>> files from the cvs be replaced by the tar.gz version? or will there 
>> be duplicate entries left?
>>
>>        Thanks again
>>        Regards,
>>        Padmaja
>>        ----- Original Message -----        From: Jayesh Nambiar
>>        To: users at openser.org
>>        Cc: padmaja.rv at vodcalabs.com
>>        Sent: Wednesday, May 31, 2006 12:08 PM
>>        Subject: [Users] Re: how to run openser through monit daemon?
>>
>>
>>        Hi padmaja,
>>        Running openser from cvs would not solve your problem. Openser 
>> from cvs is the development version which will be released after 
>> final testing is done.
>>        To be safe, its better if you use .tar.gz file to install. For 
>> enabling mysql, go to the openser directory and you'll find a 
>> makefile. In the makefile there is a line exclude_modules?= somewhere 
>> around line no.49. From there just remove mysql and recompile it again.
>>        You can start openser using openserctl start from the command 
>> line.
>>        To check for some errors you can set debug=9 in the 
>> openser.cfg file.
>>        Normally the logs are stored into /var/log/messages. You can 
>> check for errors in this file.
>>
>>        Hi!
>>        there is something I need to mention here with respect to 
>> openser not
>>        working.....
>>
>>        Initially I had openser installed from .tar.gz and i could run 
>> it from
>>        /usr/local/sbin/openser. It worked fine that way without any 
>> authentication.
>>        I could see local registration of my sip UAs with the openser 
>> being
>>        successful. then i set up mysql. It too started successfulyy 
>> thru webmin.
>>        next I tried to create the openser database in mysql from
>>        /usr/sbin/openser_mysql.sh create. It prompted me for the root 
>> password of
>>        mysql, the domain name and then failed stating that the Ha1 
>> calculation
>>        failed. also when i tried to modify the openser.cfg file to 
>> support mysql
>>        database i found that there is no mysql.so module in the
>>        /usr/local/lib/openser/modules/ path.
>>
>>        Because of the above problems, I tried installing openser from 
>> CVS and here
>>        all the modules and configuration files are present in the 
>> respective
>>        locations as mentioned in the web link for installing openser. 
>> I could even
>>        create the openser database structures in mysql. i tried 
>> uncommenting the
>>        needed modules for database suppport. now when i try to run 
>> openser thru
>>        monit, there is absolutely no response and openser does not 
>> look like
>>        running............
>>
>>        I am a newbie at openser......please help me which way i 
>> should run
>>        openser.....
>>
>>        thanks and regards,
>>        Padmaja
>>
>>
>>
>>
>>
>> -------------------------------------------------------------------------- 
>>
>>      Yahoo! India Answers: Share what you know. Learn something new 
>> Click here
>>      Send free SMS to your Friends on Mobile from your Yahoo! 
>> Messenger Download now
>>
>>
>>
>>
>> ------------------------------------------------------------------------------ 
>>
>>  Yahoo! India Answers: Share what you know. Learn something new Click 
>> here
>>  Send free SMS to your Friends on Mobile from your Yahoo! Messenger 
>> Download now
>> -------------- next part --------------
>> An HTML attachment was scrubbed...
>> URL: 
>> http://openser.org/pipermail/users/attachments/20060601/e110ed3c/attachment.htm 
>>
>>
>> ------------------------------
>>
>> Message: 2
>> Date: Thu, 01 Jun 2006 13:20:28 +0300
>> From: Daniel-Constantin Mierla <daniel at voice-system.ro>
>> Subject: Re: [Users] Call Hunting: use Avpop or LCR module ?
>> To: Alexandre Snarskii <snar at paranoia.ru>
>> Cc: rrisco at millicom.net.pe, "users at openser.org" <users at openser.org>
>> Message-ID: <447EBF6C.50401 at voice-system.ro>
>> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>>
>>
>>
>> On 06/01/06 12:53, Alexandre Snarskii wrote:
>>> On Wed, May 31, 2006 at 12:04:41AM +0300, Daniel-Constantin Mierla 
>>> wrote:
>>>
>>>> Hello,
>>>>
>>>> On 05/30/06 19:47, Rafael J. Risco G.V. wrote:
>>>>
>>>>> hi
>>>>> I would like to read some opinions to know which method its better to
>>>>> implement Call Hunting, using serial forking with 'avpops' or 'lcr'
>>>>> module 'load_contacts()/next_contact()' functions, does someone 
>>>>> has an
>>>>> example of any of these methods?
>>>>>
>>>> if it is a global scope you can use any of them, Which is better?
>>>> Depends on your environment and how you organize  your data.
>>>>
>>>> If is per user, then avpops is more suitable. An example of using 
>>>> avpops
>>>> you can find at:
>>>>
>>>> http://www.voice-system.ro/docs/avpops/ar01s08.html#ex_serial_forking
>>>>
>>>
>>> It is suitable, but for some scenarios it require much more complicated
>>> config, which is not easy to understand.
>>>
>>> Scenario:
>>> User A (PSTN side) calls user B (SIP). With avpops we select some 
>>> numbers
>>> for this user, trying original number (returns 486/BUSY), hunting to 
>>> next
>>> number (creating new transaction on router).
>> it does not create a new transaction, just adds a new branch to it.
>>>  Phone B2 starts with
>>> 100/Trying 180/Ringing, then user A hangs.
>>> CANCEL message first visits original number, which returns
>>> 481/Call leg/transaction does not exists [1],
>> you mean that sends CANCEL to B1? I do not think so, CANCEL is not sent
>> to completed branches, just to ones that haven't received a final 
>> response.
>>>  then hunts to second
>>> number and successfully cancel's call. But, at point [1], first 
>>> transaction
>>> _does not store_ new reply code (modules/tm/t_reply.c, line 762 just 
>>> logs
>>> message
>>>         LOG(L_ERR, "ERROR: t_should_relay_response: status rewrite 
>>> by UAS: "
>>>             "stored: %d, received: %d\n",
>>>             Trans->uac[branch].last_received, new_code );
>>>         goto discard;
>>> ), and again hunts, so, third number of user B starts ringing...
>>>
>> What version of openser do you use?
>>
>>> The only solution for this which I found yet is:
>>>
>>> #The only way to really check return code is to check it in 
>>> onreply_route,
>>> #then set flag which will permit failure_route to hunt this call again.
>>> #You can't check status with t_check_status within failure_route,
>>> #because t_check_status in failure_route returns the lowest value
>>> #of all branches..
>>> onreply_route[1] {
>>>         if(status=~"40[48]" || status=~"486") {
>>>                 #not-so-fatal response, should hunt
>>>                 setflag(2);
>>>         };
>>> }
>>> failure_route[1] {
>>>         if(isflagset(2)) {
>>>                 resetflag(2);
>>>                 if(avp_pushto("$ruri","$serial_fork")) {
>>> #and then everytingh should work as in example.
>>>
>>
>> You can use t_was_cancelled() in failure route:
>> http://openser.org/docs/modules/1.1.x/tm.html#AEN479 . It will ensure
>> that you get the proper status of canceled transactions.
>>
>>> But, this config is not yet complete - with this configuration
>>> CANCEL's does not hunt after 481 Call leg does not exists, so,
>>> in situation when we need to cancel call on second or third number,
>>> we're not able to do that :(
>>> Just adding another code (481) to our list of not-so-fatal response
>>> does nothing but returns us to initial problem, and the only
>>> solution found is to complicate configuration again to:
>>>
>>> #main post-routing code
>>> route[1] {
>>> if(method=="CANCEL") {
>>> t_on_reply("2");
>>> } else {
>>> t_on_reply("1");
>>> };
>>> t_on_failure("1");
>>> t_relay();
>>> };
>>>
>>> onreply_route[1] { #onreply for everyting but CANCEL
>>>         if(status=~"40[48]" || status=~"486") {
>>>                 #not-so-fatal response, should hunt
>>>                 setflag(2);
>>>         };
>>> }
>>> onreply_route[2] { #onreply for CANCEL's
>>>         if(status=~"481") {
>>>                 #not-so-fatal response, should hunt
>>>                 setflag(2);
>>>         };
>>> }
>>>
>>> failure_route[1] {
>>>         if(isflagset(2)) {
>>>                 resetflag(2);
>>>                 if(avp_pushto("$ruri","$serial_fork")) {
>>>
>>>
>>> Please note, that config is in pre-production stage, tested, but
>>> without really massive tests. Also, note that this is not complete
>>> config, just parts to allow serial hunting without noted problem.
>>>
>>> If anyone knows more elegant solution for my problem - please, let
>>> me know. Also, if anyone can see a problem with my config - let me
>>> know how to test it...
>>>
>>
>> Could you try the latest version of OpenSER CVS, it is now in
>> frozen/testing phase, just to be release in a few weeks. Any feedback
>> will help to fix eventual issues. The part with reply code selections
>> and CANCEL processing was refurbished and should have fixed some old 
>> issues.
>>
>> Cheers,
>> Daniel
>>
>>
>>> PS: another problem may arise with maximal number of branches.
>>> With default configuration of ser (config.h, #define MAX_BRANCHES 12)
>>> maximum number of hunts is limited to 11. If you need more hunts than
>>> this - you need to recompile ser.
>>>
>>>
>>>
>>
>>
>>
>> ------------------------------
>>
>> Message: 3
>> Date: Thu, 01 Jun 2006 14:38:06 +0300
>> From: Daniel-Constantin Mierla <daniel at voice-system.ro>
>> Subject: Re: [Users] Call Hunting: use Avpop or LCR module ?
>> To: Alexandre Snarskii <snar at paranoia.ru>
>> Cc: "users at openser.org" <users at openser.org>
>> Message-ID: <447ED19E.2040203 at voice-system.ro>
>> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>>
>>
>>
>> On 06/01/06 14:32, Alexandre Snarskii wrote:
>>> On Thu, Jun 01, 2006 at 01:20:28PM +0300, Daniel-Constantin Mierla 
>>> wrote:
>>>
>>>> On 06/01/06 12:53, Alexandre Snarskii wrote:
>>>>
>>>>> On Wed, May 31, 2006 at 12:04:41AM +0300, Daniel-Constantin Mierla 
>>>>> wrote:
>>>>>
>>>>>
>>>>>> Hello,
>>>>>>
>>>>>> On 05/30/06 19:47, Rafael J. Risco G.V. wrote:
>>>>>>
>>>>>>
>>>>>>> hi
>>>>>>> I would like to read some opinions to know which method its 
>>>>>>> better to
>>>>>>> implement Call Hunting, using serial forking with 'avpops' or 'lcr'
>>>>>>> module 'load_contacts()/next_contact()' functions, does someone 
>>>>>>> has an
>>>>>>> example of any of these methods?
>>>>>>>
>>>>>>>
>>>>>> if it is a global scope you can use any of them, Which is better?
>>>>>> Depends on your environment and how you organize  your data.
>>>>>>
>>>>>> If is per user, then avpops is more suitable. An example of using 
>>>>>> avpops
>>>>>> you can find at:
>>>>>>
>>>>>> http://www.voice-system.ro/docs/avpops/ar01s08.html#ex_serial_forking 
>>>>>>
>>>>>>
>>>>>>
>>>>> It is suitable, but for some scenarios it require much more 
>>>>> complicated
>>>>> config, which is not easy to understand.
>>>>>
>>>>> Scenario:
>>>>> User A (PSTN side) calls user B (SIP). With avpops we select some 
>>>>> numbers
>>>>> for this user, trying original number (returns 486/BUSY), hunting 
>>>>> to next
>>>>> number (creating new transaction on router).
>>>>>
>>>> it does not create a new transaction, just adds a new branch to it.
>>>>
>>>>> Phone B2 starts with
>>>>> 100/Trying 180/Ringing, then user A hangs.
>>>>> CANCEL message first visits original number, which returns
>>>>> 481/Call leg/transaction does not exists [1],
>>>>>
>>>> you mean that sends CANCEL to B1? I do not think so, CANCEL is not 
>>>> sent
>>>> to completed branches, just to ones that haven't received a final 
>>>> response.
>>>>
>>>>> then hunts to second
>>>>> number and successfully cancel's call. But, at point [1], first 
>>>>> transaction
>>>>> _does not store_ new reply code (modules/tm/t_reply.c, line 762 
>>>>> just logs
>>>>> message
>>>>>        LOG(L_ERR, "ERROR: t_should_relay_response: status rewrite 
>>>>> by UAS:
>>>>>        "
>>>>>            "stored: %d, received: %d\n",
>>>>>            Trans->uac[branch].last_received, new_code );
>>>>>        goto discard;
>>>>> ), and again hunts, so, third number of user B starts ringing...
>>>>>
>>>>>
>>>> What version of openser do you use?
>>>>
>>>
>>> ser 0.9.6, freebsd 6.1, database backend is postgresql.
>>> Did not tried that setup with openser yet.
>>> Initial question was in ser-users mailing list..
>>>
>>
>> it seems that was doubled posted, I answered to users at openser.org and
>> overlooked that is for serusers, too.
>>
>> Cheers,
>> Daniel
>>
>>
>>>
>>>>> The only solution for this which I found yet is:
>>>>>
>>>>> #The only way to really check return code is to check it in 
>>>>> onreply_route,
>>>>> #then set flag which will permit failure_route to hunt this call 
>>>>> again.
>>>>> #You can't check status with t_check_status within failure_route,
>>>>> #because t_check_status in failure_route returns the lowest value
>>>>> #of all branches..
>>>>> onreply_route[1] {
>>>>>        if(status=~"40[48]" || status=~"486") {
>>>>>                #not-so-fatal response, should hunt
>>>>>                setflag(2);
>>>>>        };
>>>>> }
>>>>> failure_route[1] {
>>>>>        if(isflagset(2)) {
>>>>>                resetflag(2);
>>>>>                if(avp_pushto("$ruri","$serial_fork")) {
>>>>> #and then everytingh should work as in example.
>>>>>
>>>>>
>>>> You can use t_was_cancelled() in failure route:
>>>> http://openser.org/docs/modules/1.1.x/tm.html#AEN479 . It will ensure
>>>> that you get the proper status of canceled transactions.
>>>>
>>>>
>>>>> But, this config is not yet complete - with this configuration
>>>>> CANCEL's does not hunt after 481 Call leg does not exists, so,
>>>>> in situation when we need to cancel call on second or third number,
>>>>> we're not able to do that :(
>>>>> Just adding another code (481) to our list of not-so-fatal response
>>>>> does nothing but returns us to initial problem, and the only
>>>>> solution found is to complicate configuration again to:
>>>>>
>>>>> #main post-routing code
>>>>> route[1] {
>>>>> if(method=="CANCEL") {
>>>>> t_on_reply("2");
>>>>> } else {
>>>>> t_on_reply("1");
>>>>> };
>>>>> t_on_failure("1");
>>>>> t_relay();
>>>>> };
>>>>>
>>>>> onreply_route[1] { #onreply for everyting but CANCEL
>>>>>        if(status=~"40[48]" || status=~"486") {
>>>>>                #not-so-fatal response, should hunt
>>>>>                setflag(2);
>>>>>        };
>>>>> }
>>>>> onreply_route[2] { #onreply for CANCEL's
>>>>>        if(status=~"481") {
>>>>>                #not-so-fatal response, should hunt
>>>>>                setflag(2);
>>>>>        };
>>>>> }
>>>>>
>>>>> failure_route[1] {
>>>>>        if(isflagset(2)) {
>>>>>                resetflag(2);
>>>>>                if(avp_pushto("$ruri","$serial_fork")) {
>>>>>
>>>>>
>>>>> Please note, that config is in pre-production stage, tested, but
>>>>> without really massive tests. Also, note that this is not complete
>>>>> config, just parts to allow serial hunting without noted problem.
>>>>>
>>>>> If anyone knows more elegant solution for my problem - please, let
>>>>> me know. Also, if anyone can see a problem with my config - let me
>>>>> know how to test it...
>>>>>
>>>>>
>>>> Could you try the latest version of OpenSER CVS, it is now in
>>>> frozen/testing phase, just to be release in a few weeks. Any feedback
>>>> will help to fix eventual issues. The part with reply code selections
>>>> and CANCEL processing was refurbished and should have fixed some 
>>>> old issues.
>>>>
>>>> Cheers,
>>>> Daniel
>>>>
>>>>
>>>>
>>>>> PS: another problem may arise with maximal number of branches.
>>>>> With default configuration of ser (config.h, #define MAX_BRANCHES 12)
>>>>> maximum number of hunts is limited to 11. If you need more hunts than
>>>>> this - you need to recompile ser.
>>>>>
>>>>>
>>>>>
>>>>>
>>>
>>>
>>
>>
>>
>> ------------------------------
>>
>> _______________________________________________
>> Users mailing list
>> Users at openser.org
>> http://openser.org/cgi-bin/mailman/listinfo/users
>>
>>
>> End of Users Digest, Vol 13, Issue 4
>> ************************************
>>
>
>
> _______________________________________________
> Users mailing list
> Users at openser.org
> http://openser.org/cgi-bin/mailman/listinfo/users
>




More information about the sr-users mailing list