Shirley,
The UA firmware engineers interpreted the sip
document in a different way than I would have. They use the
from tag, to tag, and call id to make the call 'unique'. If you
use all three fields the call will be unique for you.
-g
On Jul 13, 2004, at 7:22 AM, Shirley Toh wrote:
> Hi,
>
> I am having the same problem as you, may I know how you able to solve
> it...please help..thanks..~~~~~ :)
>
> Regards,
> Shirley
>
>> -----Original Message-----
>> From: Greg Fausak [SMTP:greg@addabrand.com]
>> Sent: Tuesday, June 29, 2004 1:17 AM
>> To: Klaus Darilion
>> Cc: serusers(a)lists.iptel.org; Andrei Pelinescu-Onciul
>> Subject: Re: [Serusers] non-unique call id problem
>>
>> The UA is grandstream.
>> I've just enabled totag/fromtag in the ACC: output, I'll take
>> a look at that to see if some uniqueness can be derived.
>>
>> Thanks,
>> -g
>>
>> On Jun 28, 2004, at 6:20 AM, Klaus Darilion wrote:
>>
>>>
>>>
>>> Greg Fausak wrote:
>>>> So, what if a UA generates a non-unique call-id?
>>>> shut down the user_id?
>>>
>>> That would be a possibillity. But first I would ask the user to
>>> update
>>> his equipment. Which UA is it?
>>>
>>> klaus
>>>
>>>
>> Greg Fausak
>> www.AddaBrand.com
>> (US) 469-546-1265
>>
>> _______________________________________________
>> Serusers mailing list
>> serusers(a)lists.iptel.org
>> http://lists.iptel.org/mailman/listinfo/serusers
>
>
Greg Fausak
www.AddaBrand.com
(US) 469-546-1265
Hi,
I want SER to accept request only from 2 given IP. So I wrote my configuration
file like this:
if (source IP is the first IP) then {...} else if (source IP is the second IP)
then {...}
but when I'm launching SER he tells me "more than one listen address found
(will use only the the first one)".
any ideas?
Cyprien
Hi,
I can place and receive call from the PSTN, but I can place call even if I
am not registered !!!!!!!
And I want only user who are registered can place call?
How can I do please?
That's my configuration file :
route{
# initial sanity checks -- messages with
# max_forwards==0, or excessively long requests
if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483","Too Many Hops");
break;
};
if ( msg:len > max_len ) {
sl_send_reply("513", "Message too big");
break;
};
# we record-route all messages -- to make sure that
# subsequent messages will go through our proxy; that's
# particularly good if upstream and downstream entities
# use different transport protocol
record_route();
# loose-route processing
if (loose_route()) {
t_relay();
break;
};
/* grant Route routing if route headers present */
if (loose_route()) { t_relay(); break; };
/* record-route INVITEs -- all subsequent requests must visit us */
if (method=="INVITE") {
record_route();
};
# now check if it really is a PSTN destination which should be
handled
# by our gateway; if not, and the request is an invitation, drop it
--
# we cannot terminate it in PSTN; relay non-INVITE requests -- it
may
# be for example BYEs sent by gateway to call originator
if (uri=~"My realm") {
if (method=="REGISTER") {
# Uncomment this if you want to use digest
authentication
if (!www_authorize("My realm ", "subscriber")) {
www_challenge("My realm ", "0");
break;
};
save("location");
break;
};
# native SIP destinations are handled using our USRLOC DB
if (!lookup("location")) {
#rewritehostport("*****:5060");
forward(*****, 5060);
};
# forward the request now
if (!t_relay()) {
sl_reply_error();
break;
};
};
}
Sorry, my typo.
The syntax should be:
serctl alias add chris sip:chris@sip.domain.com
Before that, you have to set environment variable
SIP_DOMAIN=domain.com
export SIP_DOMAIN
This will add alias as chris @ domain.com. Then, if you want to setup alias
for example2.domain, do
SIP_DOMAIN=example2.domain
export SIP_DOMAIN
serctl alias add chris sip:chris@sip.example2.domain
This will add alias as chris @ example2.domain to chris(a)sip.example2.domain.
OTOH, you can directly insert them into your SQL database. Make sure you do
it when SER is not running. Otherwise, the alias table will get overwritten
by the content in memory.
Zeus
> -----Original Message-----
> From: Chris Bond [mailto:chris@logics.co.uk]
> Sent: Tuesday, 13 July 2004 6:29 PM
> To: 'Zeus Ng'
> Cc: serusers(a)lists.iptel.org
> Subject: RE: [Serusers] SIP Forwarding?
>
>
> Had to do sip:chris@sip.domain.com, I want to be able to
> forward any calls this as the box has lots of domains on.
> Whats the easiest way to do this as there could be two chris'
> etc. I rather refer to everything as a full?
>
> Kind Regards,
> Chris Bond
> -----Original Message-----
> From: Zeus Ng [mailto:zeus.ng@isquare.com.au]
> Sent: 13 July 2004 9:15 AM
> To: chris(a)logics.co.uk
> Cc: serusers(a)lists.iptel.org
> Subject: RE: [Serusers] SIP Forwarding?
>
> Use "serctl alias add <alias> <uri>" to populate your alias table.
>
> E.g.
>
> serctl alias add chris chris(a)sip.domain.com
>
> Zeus
>
Use "serctl alias add <alias> <uri>" to populate your alias table.
E.g.
serctl alias add chris chris(a)sip.domain.com
Zeus
>
> Sounds good - question on the table structure - what fields
> do I need to populate and with what as its not very clear,
> cant see much documentation on it either...
>
> -----Original Message-----
> From: Zeus Ng [mailto:zeus.ng@isquare.com.au]
> Sent: 13 July 2004 2:24 AM
> To: chris(a)logics.co.uk
> Cc: serusers(a)lists.iptel.org
> Subject: RE: [Serusers] SIP Forwarding?
>
> Chris,
>
> The best way to do it is to use the aliases table. Set aliase
> for chris(a)domain.com as chris(a)sip.domain.com.
>
> Then, in your route block, do
>
> lookup("aliases");
> t_relay(); /* or forward(sip.domain.com, 5060) if you want
> stateless */
>
>
>
> The function forward() does not make any changes to the URI.
> It simply send the request to the destination inside the
> function. In your case, the server sip.domain.com will see
> incoming URI as chris(a)domain.com. Unless you configure
> sip.domain.com to accept requests for domain.com, it will
> relay back to domain.com and form a loop or drop completely
> depending on your configuration.
>
> With lookup("aliases"), the URI will be rewritten to
> chris(a)sip.domain.com. Then t_relay() will automatically
> forward the request to sip.domain.com statefully. If you
> desire stateless handling, use forward() instead.
>
> Zeus
>
>
> > -----Original Message-----
> > From: serusers-bounces(a)lists.iptel.org
> [mailto:serusers-bounces@lists.iptel.org]
> > On Behalf Of Chris Bond
> > Sent: Tuesday, 13 July 2004 6:11 AM
> > To: serusers(a)lists.iptel.org
> > Subject: [Serusers] SIP Forwarding?
> >
> >
> > Hi,
> >
> > I currently have the following setup and working
> chris(a)sip.domain.com
> > incoming sip calls work fine. I want to be able to setup SER to
> > forward incoming packets for chris(a)domain.com to
> chris(a)sip.domain.com.
> >
> > I've tried the following but it didn't work.
> >
> > route{
> > if (uri=~"sip:chris@domain.com") {
> > forward(sip.domain.com, 5060);
> > }
> >
> > Can anybody help?
> >
> > Kind Regards,
> > Chris Bond
> >
> > _______________________________________________
> > Serusers mailing list
> > serusers(a)lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
> >
>
>
Serusers,
SER server starts and registration is successfull,but msn client cann't communication each other .when I use Ethereal:
........
Request:INVITE sip:test@192.168.0.206,with session description
Status: 100 trying --your call is important to us
Request:INVITE sip:test@192.168.0.207:10328;with session description
Status: 100 trying
Status: 200 OK,with session description
Request: BYE sip:test@192.168.0.206;ftag=f92d17003fg64albad12e56a04c4c5aa;Ir=on
Status: 200 OK,with session description
Resquest:ACK sip:test@192.168.0.206;ftag=f92d17003fg64albad12e56a04c4c5aa;Ir=on
Resquest:Message test(a)192.168.0.206;ftag=f92d17003fg64albad12e56a04c4c5aa;Ir=on with session description
Resquest: BYE sip:192.168.0.208:13698
Status: 200 OK
Resquest:ACK sip:192.168.0.208:13698
Resquest:Message sip:19292.168.0.207:10328. with session description
Status: 200 OK
Status: 481 call leg/transaction Does Not Exist
Status: 481 call leg/transaction Does Not Exist
.....
I donn't know how to do? please help me!Thanks!
zhangsezhen(a)sict.ac.cn
2004-07-13
Hi List,
i'm getting the following error while starting ser:
0(24085) parse error (105,20-21): unknown command, missing loadmodule?
0(24085) parse error (152,19-20): unknown command, missing loadmodule?
ERROR: bad config file (2 errors)
Line 105:
if (!enum_query()) {
Line 152:
if (!enum_query()) {
On Line 38:
loadmodule "/usr/local/lib/ser/modules/enum.so"
is executed, and there is no error regarding the loading of this module.
Also, on line 46:
modparam("enum", "domain_suffix", "e164.arpa.")
is executed without error.
Version is
version: ser 0.8.12 (sparc64/solaris)
Strange. Any ideas?
Thanks,
Martin
Hello:
I need some help with getting an unanswered call rolled over to
SEMS for voicemail.
When an inbound call goes unanswered I would like to call to
go to SEMS voicemail. The SEMS/SER interface works for
specific test cases but the general case is failing with the error
"parse error (700,18-19): Command cannot be used in the block".
In the general case I have a voicemail check in the main section of my
config file. If the calling party enters a specific extension the call
is routed to
SEMS using the logic: (This works).
## test
if (uri=~"^sip:68001")
{
if(method=="ACK" || method=="INVITE" || method=="BYE" ||
method=="REFER"){
if(t_newtran()){
if(!vm("/tmp/am_fifo","voicemail")) {
log("couldn't contact voicemail server\n");
t_reply("500", "couldn not contact voicemail server");
};
}
else {
log("could not create new transaction\n");
sl_send_reply("500","could not create new transaction");
};
}; # end if method
break;
};
## end test
For the specific case I moved some of the above logic into a
failure_route block, I added the following check for this failure
condition in the main config file and then I attempt to execute
the voice mail logic in the failure block. I don't think the t_newtran
function can be used in a failure block but I don't see how else
to implement a "roll over to voicemail when not answered" type
of routing.
My failure check code is:
# redirect user to vm if not availabile? Flag it now in case of
# rewrite and store it in flag 6 for route block 6
if (is_user_in("Request-URI", "voicemail")) {
t_on_failure("6");
setflag(6);
log(1, "[SER]: Flag for VM redirect successful. \n");
} else {
log(1, "[SER]: Flag for VM redirect unsuccessful. \n");
};
My failure_route is:
failure_route[6] {
xlog("L_INFO", "\n[SER]: START FAILURE BLOCK #6 Unavailable user:
Time: [%Tf] Method: <%rm> R-uri: <%ru> Contact Header: <%ct>
From uri <%fu> To < %tu> IP source address <%is> \n\n");
if(method=="ACK" || method=="INVITE" || method=="BYE" || method=="REFER"){
if(t_newtran()){
if(!vm("/tmp/am_fifo","voicemail")) {
log("couldn't contact voicemail server\n");
t_reply("500", "couldn not contact voicemail server");
};
}
else {
log("could not create new transaction\n");
sl_send_reply("500","could not create new transaction");
};
}; # end if method
break;
}
Any thoughts on this would be helpful.
Thanks,Steve
--
ISC Network Engineering
The University of Pennsylvania
3401 Walnut Street, Suite 221A
Philadelphia, PA 19104
voice: 215-573-8396
215-746-7903
fax: 215-898-9348
sip:blairs@upenn.edu
Jan,
See below. Also, always CC the list so that other people can help you.
Zeus
> >
> > Flag 4 is set when the caller is behind NAT.
> > Flag 5 is set when the callee is behind NAT.
> Would you be so kind and tell me how do you test messages to
> set these
> flags?
/*
Check for UAC behind NAT
This is done by nat_uac_test("7") which checks for
1. RFC 1918 address in Contact - 01
2. different src_ip and Via header - 02
3. RFC1918 in Top Via - 04
*/
if (nat_uac_test("3")) { /* 1 + 2 = 3 */
xlog("L_NOTICE", "%rm: Client is behind NAT\n");
setflag(4); /* Flag it's a nated R-URI */
if (method=="REGISTER" || !search("^Record-Route:")) {
force_rport();
if (!method=="MESSAGE") { /* MESSAGE has no
Contact header, see RFC 3428 */
fix_nated_contact();
};
};
} else {
xlog("L_NOTICE", "%rm: Client is not behind a NAT\n");
};
... Other checking ...
if (method=="REGISTER") {
if (isflagset(4)) {
setflag(5); /* Turn on NAT Ping and flag it as a
NAT callee */
};
if (!save("location")) {
xlog("L_ERR", "%rm: Failed\n");
sl_reply_error();
};
break;
};
>
> Thanks
> Jan
>