[OpenSIPS-Users] Virtual Service Activation Codes

Indiver nehru.indu at gmail.com
Wed Dec 9 14:08:30 CET 2009


Hi Bodgan,
 Thanks for your reply. I had no idea about ACLs , i saw a document that
ACLS are nothing but group checking but i'm not clear abt that.so i modified
and tried the code and it's working for DND.
The procedure i followed is
when i called to internal number the call goes to route[10] as follows:
In opensips.cfg:
if (is_uri_host_local()) {
            # -- Inbound to Inbound
            route(10);

route[10] {
if (!does_uri_exist()) {
    if (uri=~"^sip:[2-9][0-9]{9}@") {
        if (is_user_in("credentials","local")) {
            route(6);
            route(4);
            exit;
        } else {
            sl_send_reply("403", "No permissions for local calls");
            exit;
        };
    };

    if (uri=~"^sip:1[2-9][0-9]{9}@") {
        if (is_user_in("credentials","ld")) {
            route(6);
            route(4);
            exit;
        } else {
            sl_send_reply("403", "No permissions for long distance");
            exit;
        };
    };

    if (uri=~"^sip:011[0-9]*@") {
        if (is_user_in("credentials","int")) {
            route(6);
            route(4);
            exit;
        } else {
            sl_send_reply("403", "No permissions for international calls");
        };
    };
  };   
  if (uri=~"^\*[1-9]+") {
		# we do provide access to media services only to our
		# subscribers, who were previously authenticated
                xlog("****Starting of $ru***\n"); 
		if (!is_from_local()) {
			send_reply("403","Forbidden access to media service");
			exit;
		}
		#identify the services and translate to Asterisk extensions
		if ($rU=="*78") {
			#ENABLE DND
			seturi("sip:AN_fwdok at Asterisk IP:5060");
                      
		}

else
if ($rU=="*79") {
			# DISABLE DND
			seturi("sip:AN_fwdko at Asterisk IP:5060");
		} 

t_relay();
exit;
}      
    if (!lookup("location")) {
        if (does_uri_exist()) {
            ## User not registered at this time.
            revert_uri();
            prefix("u");
            rewritehostport("localhost"); #Use the IP address of your
voicemail server
            route(6);
            route(1);
        } else {
            sl_send_reply("404", "Not Found-10-1");
         exit;
        }      
        sl_send_reply("404", "Not Found-10-2");
        exit;
    };
    route(6); 
    route(1);
}
Asterisk Server:

In the Asterisk(extensions.conf) i wrote a dialplan for DND:
extensions.conf:
exten => AN_fwdok,1,Answer
exten => AN_fwdok,2,Set(DB(SIP/DND/${CALLERID(num)})=1)
exten => AN_fwdok,3,Playback(beep)
exten => AN_fwdok,4,Wait(2)
exten => AN_fwdok,5,Hangup

exten => AN_fwdko,1,Answer
exten => AN_fwdko,2,NoOp(${DB_DELETE(SIP/DND/${CALLERID(num)})})
exten => AN_fwdko,3,Playback(beep)
exten => AN_fwdko,4,Wait(2)
exten => AN_fwdko,5,Hangup.

The above code i posted is working for me
Is the above procedure i followed for activation of DND in opensips is
correct? Thanks in Advance!


Bogdan-Andrei Iancu wrote:
> 
> Hi Indiver,
> 
> your code is not implementing DND, but simply redirects *78 to a voice 
> announcement.  What you have to do is to actually implement the DND 
> service first (maybe using an ACL -> if a user receives a call and the 
> user had the DND ACL on, reject the call) and then to control it 
> (enable/disable) via the *78 code.
> 
> Regards,
> Bogdan
> 
> Indiver wrote:
>> Hi Bodgan,
>>
>> For Virtual service activation codes, as per my observation when ever
>> user
>> dials *78 u just redirecting to asterisk as follows:
>> if ($rU=~"^\*[1-9]+") {
>> 		# we do provide access to media services only to our
>> 		# subscribers, who were previously authenticated 
>> 		if (!is_from_local()) {
>> 			send_reply("403","Forbidden access to media service");
>> 			exit;
>> 		}
>> 		#identify the services and translate to Asterisk extensions
>> 		if ($rU=="*78") {
>> 			# access to own voicemail IVR
>> 			seturi("sip:AN_fwdok at ASTERISK_IP:ASTERISK_PORT");
>>                          t_relay();
>> 		        exit;
>>             and when the user dialing *79 it was just rewriting the uri
>> as
>> follows
>>                         
>>            seturi("sip:AN_fwdko at ASTERISK_IP:ASTERISK_PORT");
>>            t_relay();
>>            exit;
>>
>> Is my assumption is right?Thanks in advance
>>
>>
>>
>>
>> Bogdan-Andrei Iancu wrote:
> 
>>   
>>> Hi Indiver,
>>>
>>> the Activation Codes service is pure scripting - it is not a module in 
>>> opensips. Most of the VoIP features you can do with OpenSIPS are not 
>>> necessarily provided by module (directly by C code), but rather via 
>>> scripting logic (combination of different ops in the opensips script).
>>>
>>> Regards,
>>> Bogdan
>>>
>>> Indiver wrote:
>>>     
>>>> Hi Every One,
>>>>
>>>> I registered in opensips voip services site. I found a tab regarding
>>>> dialing
>>>> plan. such as *78 for enable dnd,*72 for setting to permanent
>>>> redirect,*50
>>>> for voicemail inbox. I found no documentation in opensips regarding
>>>> these
>>>> services. Is there a way for acheiving this thru opensips. Thanks in
>>>> advance.
>>>>   
>>>>       
>>> -- 
>>> Bogdan-Andrei Iancu
>>> www.voice-system.ro
>>>
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at lists.opensips.org
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>
>>>
>>>     
>>
>>   
> 
> 
> -- 
> Bogdan-Andrei Iancu
> www.voice-system.ro
> 
> 
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
> 
> 

-- 
View this message in context: http://n2.nabble.com/Virtual-Service-Activation-Codes-tp4063251p4139290.html
Sent from the OpenSIPS - Users mailing list archive at Nabble.com.



More information about the Users mailing list