Hello all
We have just installed SER_0.9.6_linux_i386 without MySQL support. We have registered two users with SER using jain-sip-applet-phone. We can make calls between them successfully. But, when we try to make one user a contact of the other, SER sends a "404 not found" for the SUBSCRIBE message.
Appreciate any help in resolving this issue.
Thanks and regards
Amit.
The information contained in this electronic message and any attachments to this message are intended for the exclusive use of the addressee(s) and may contain proprietary, confidential or privileged information. If you are not the intended recipient, you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately and destroy all copies of this message and any attachments.
WARNING: Computer viruses can be transmitted via email. The recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email.
www.wipro.com
Anyone knows why I keep getting following error message?
Aug 2 13:10:26 localhost openser[30695]: ERROR: extract_body: message body
has length zero
Aug 2 13:10:26 localhost openser[30695]: ERROR: force_rtp_proxy2: can't
extract body from the message
I turn on nathelper, and saw from the following source code:
int extract_body(struct sip_msg *msg, str *body )
{
body->s = get_body(msg);
if (body->s==0) {
LOG(L_ERR, "ERROR: extract_body: failed to get the message
body\n");
goto error;
}
body->len = msg->len -(int)(body->s-msg->buf);
if (body->len==0) {
LOG(L_ERR, "ERROR: extract_body: message body has length
zero\n");
goto error;
}
Why do we care about the content-length, which normally is 0 for most of the
SIP UAs? Following is an example SIP UA Registration and you can see
"Content-Length: 0" in the bottom:
Session Initiation Protocol
Request-Line: REGISTER sip:sip.mycompany.com SIP/2.0
Method: REGISTER
Resent Packet: True
Suspected resend of frame: 62339
Message Header
Via: SIP/2.0/UDP 192.168.254.6:5062;branch=z9hG4bK0997e90280d2f8e5
From: "Bill Office Phone"
<sip:8001@sip.mycompany.com>;tag=ec200436c1169e42
SIP Display info: "Bill Office Phone"
SIP from address: sip:8001@sip.mycompany.com
SIP tag: ec200436c1169e42
To: <sip:8001@sip.mycompany.com>
SIP to address: sip:8001@sip.mycompany.com
Contact: <sip:8001@192.168.254.6:5062>
Call-ID: 5a2ae3a1b883568f(a)192.168.254.6
CSeq: 20113 REGISTER
Expires: 120
User-Agent: ABC 1.0.0.0
Max-Forwards: 70
Allow:
INVITE,ACK,CANCEL,BYE,NOTIFY,REFER,OPTIONS,INFO,SUBSCRIBE,UPDATE,PRACK,MESSA
GE
Content-Length: 0
Thanks in advance.
Best Regards,
Bill Zhang
Anyone knows why I keep getting following error message?
Aug 2 13:10:26 localhost openser[30695]: ERROR: extract_body: message body
has length zero
Aug 2 13:10:26 localhost openser[30695]: ERROR: force_rtp_proxy2: can't
extract body from the message
I turn on nathelper, and saw from the following source code:
int extract_body(struct sip_msg *msg, str *body )
{
body->s = get_body(msg);
if (body->s==0) {
LOG(L_ERR, "ERROR: extract_body: failed to get the message
body\n");
goto error;
}
body->len = msg->len -(int)(body->s-msg->buf);
if (body->len==0) {
LOG(L_ERR, "ERROR: extract_body: message body has length
zero\n");
goto error;
}
Why do we care about the content-length, which normally is 0 for most of the
SIP UAs? Following is an example SIP UA Registration and you can see
"Content-Length: 0" in the bottom:
Session Initiation Protocol
Request-Line: REGISTER sip:sip.mycompany.com SIP/2.0
Method: REGISTER
Resent Packet: True
Suspected resend of frame: 62339
Message Header
Via: SIP/2.0/UDP 192.168.254.6:5062;branch=z9hG4bK0997e90280d2f8e5
From: "Bill Office Phone"
<sip:8001@sip.mycompany.com>;tag=ec200436c1169e42
SIP Display info: "Bill Office Phone"
SIP from address: sip:8001@sip.mycompany.com
SIP tag: ec200436c1169e42
To: <sip:8001@sip.mycompany.com>
SIP to address: sip:8001@sip.mycompany.com
Contact: <sip:8001@192.168.254.6:5062>
Call-ID: 5a2ae3a1b883568f(a)192.168.254.6
CSeq: 20113 REGISTER
Expires: 120
User-Agent: ABC 1.0.0.0
Max-Forwards: 70
Allow:
INVITE,ACK,CANCEL,BYE,NOTIFY,REFER,OPTIONS,INFO,SUBSCRIBE,UPDATE,PRACK,MESSA
GE
Content-Length: 0
Thanks in advance.
Best Regards,
Bill Zhang
Hey Guys,
We're trying to use an OpenSER server for some SIP communications. While it works great for most scenarios (Behind NAT, Outside of NAT, One client behind NAT and the other Outside of NAT), there is one that seems to be causing difficulty (naturally, this is the one that is being requested. :\ ). I'm being asked if we can set up the server to not only support the previously mentioned scenarios but also where both clients are behind the same NAT, but no ports are forwarded through the NAT for the clients. Basically, client calls another client on the same network using the off-network server as a registrar (no Mediaproxy or RTPproxy).
Is this even possible with OpenSER (v 1.0.1)? If so, perhaps I'm doing something wrong in my config (pertinent parts attached below). I know this part of the config works for most situations, so long as the clients have ports routed in the firewall/NAT device (minus the use of AVP at the end to try and achieve the desired results). Any help at all would be appreciated.
Justin Pearce
route{
# Label all transactions for accounting, as per the
# parameters for the Accounting Module
setflag(1);
setflag(2);
setflag(3);
setflag(4);
# 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");
exit;
};
#If the message is too big for SIP
if (msg:len >= 2048 ) {
sl_send_reply("513", "Message too big");
exit;
};
# 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
if (!method=="REGISTER"){
record_route();
};
# Subsequent messages withing a dialog should take the
# path determined by record-routing
if (loose_route()) {
# mark routing logic in request
append_hf("P-hint: rr-enforced\r\n");
route(1);
};
if (!uri==myself) {
# mark routing logic in request
append_hf("P-hint: outbound\r\n");
route(1);
};
# if the request is for other domain use UsrLoc
# (in case, it does not work, use the following command
# with proper names and addresses in it)
if (uri==myself) {
if (method=="REGISTER") {
fix_nated_register(); # Fix REGISTERs broken by NAT
fix_nated_contact();
force_rport(); # Force the return port in the firewall
add_rcv_param(); # Add the "recieved" parameter to the location
save("location"); # Save the location in the registrar
acc_db_request("200", "acc"); # Log the 200 OK
exit;
};
lookup("aliases"); # Check the ALIASES table
if (!uri==myself) {
append_hf("P-hint: outbound alias\r\n");
route(1);
};
# native SIP destinations are handled using our USRLOC DB
if (!lookup("location")) {
# If the user cannot be found, reply to the user
# and exit the call process
sl_send_reply("404", "Not Found");
exit;
};
append_hf("P-hint: usrloc applied\r\n");
}else{
# if the request is for other domain use UsrLoc
# (in case, it does not work, use the following command
# with proper names and addresses in it)
if (method=="REGISTER") {
fix_nated_register(); # Fix the REGISTERs broken bt NAT
fix_nated_contact();
force_rport(); # Force the return port in the firewall
add_rcv_param(); # Add the "recieved' parameter to the location
save("location"); # Save the location in the registrar
acc_db_request("200", "acc"); # Log the 200 OK
exit;
};
# native SIP destinations are handled using our USRLOC DB
if (!lookup("location")) {
# If the user cannot be found, notify sender and exit.
sl_send_reply("404", "Not Found");
exit;
};
};
# Continue onto route #1 below...
route(1);
}
route[1] {
avp_write("$src_ip", "s:temp_from_ip");
avp_write("$duri", "s:temp_to_ip");
avp_subst("s:temp_to_ip", "/^\D+@//i");
if(method=="INVITE" && !(to_uri=~"^admin@[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+[:]*[0-9]*")){
fix_nated_contact();
force_rport();
if(avp_check("s:temp_to_ip", "ne/s:temp_from_ip/g")){
fix_nated_sdp("15");
}else{
append_hf("P-Hint: Same Domain");
};
record_route();
};
#This is set of processes to be preformed on all replies...
#This conditional is to try and redeem ACKs that some how managed to get a private address attached to them.
#This is basically a hack to try and "normalize" the packets coming through and pray they work.
if(method=="ACK" || method=="BYE" || method=="INFO"){
if(uri=~"^sip:192\.168\.[0-9]+\.[0-9]+[:]*[0-9]*" || uri=~"^sip:10\.[0-9]+\.[0-9]+\.[0-9]+[:]*[0-9]*" || uri=~"^sip:172\.(16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31)\.[0-9]+\.[0-9]+[:]*[0-9]*"){
#Rewrite the R-URI of the packet to the To-URI in the To header.
subst_uri('/^sip:[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+[:]*[0-9]*$/$tu/ig');
#Force the server to perform a lookup on the new URI and try and route it properly.
lookup("location");
};
};
# send it out now; use stateful forwarding as it works reliably
# even for UDP2TCP
if (!t_relay()) {
# If the stateful relay of a message cannot take place,
# reply to the sender statelessly with the error.
sl_reply_error();
};
exit;
}
onreply_route{
if(status=="200" || method=="INVITE"){
fix_nated_contact();
force_rport();
if(!search("P-Hint: Same Domain")){
fix_nated_sdp("15");
};
};
}
I am absolutely stumped. I am bringing up a third proxy (identical to two already in production) but cannot get it to process calls. SER starts and my UA can connect to it. REGISTER is not a problem...messages pass back and forth, database access takes place to authenticate the user and the location is written. However, when a call is attempted, the proxy receives an INVITE message and then I am not sure what happens, but I get the following output in my /var/log/messages...Aug 2 17:20:15 server /usr/sbin/ser[4615]: child process 4633 exited normally, status=0Aug 2 17:20:15 server /usr/sbin/ser[4615]: INFO: terminating due to SIGCHLDAug 2 17:20:15 server /usr/sbin/ser[4656]: INFO: signal 15 receivedAug 2 17:20:15 server /usr/sbin/ser[4654]: INFO: signal 15 receivedAug 2 17:20:15 server /usr/sbin/ser[4652]: INFO: signal 15 receivedAug 2 17:20:15 server /usr/sbin/ser[4653]: INFO: signal 15 receivedAug 2 17:20:15 server /usr/sbin/ser[4635]: INFO: signal 15 receivedAug 2 17:20:15 server /usr/sbin/ser[4642]: INFO: signal 15 receivedAug 2 17:20:15 server /usr/sbin/ser[4634]: INFO: signal 15 receivedAug 2 17:20:15 server /usr/sbin/ser[4631]: INFO: signal 15 receivedAug 2 17:20:15 server /usr/sbin/ser[4630]: INFO: signal 15 receivedAug 2 17:20:15 server /usr/sbin/ser[4624]: INFO: signal 15 receivedAug 2 17:20:15 server /usr/sbin/ser[4636]: INFO: signal 15 receivedAug 2 17:20:15 server /usr/sbin/ser[4628]: INFO: signal 15 receivedAug 2 17:20:15 server /usr/sbin/ser[4625]: INFO: signal 15 receivedAug 2 17:20:15 server /usr/sbin/ser[4650]: INFO: signal 15 receivedAug 2 17:20:15 server /usr/sbin/ser[4651]: INFO: signal 15 receivedAug 2 17:20:15 server /usr/sbin/ser[4646]: INFO: signal 15 receivedand then the connection to my MySQL database gets corrupted. Here is what I see in my /var/lib/mysql/server.err:060802 17:19:15 InnoDB: Started; log sequence number 0 44240060802 17:19:15 [Note] /usr/sbin/mysqld-max: ready for connections.Version: '5.0.21-max-log' socket: '/var/lib/mysql/mysql.sock' port: 3306 MySQL Community Edition - Experimental (GPL)060802 17:20:15 [Warning] Aborted connection 16 to db: 'proxy' user: 'proxy' host: 'localhost' (Got an error reading communication packets)060802 17:20:16 [Warning] Aborted connection 39 to db: 'proxy' user: 'proxy' host: 'localhost' (Got an error reading communication packets)060802 17:20:16 [Warning] Aborted connection 40 to db: 'proxy' user: 'proxy' host: 'localhost' (Got an error reading communication packets)060802 17:20:16 [Warning] Aborted connection 36 to db: 'proxy' user: 'proxy' host: 'localhost' (Got an error reading communication packets)060802 17:20:16 [Warning] Aborted connection 18 to db: 'proxy' user: 'proxy' host: 'localhost' (Got an error reading communication packets)060802 17:20:16 [Warning] Aborted connection 8 to db: 'proxy' user: 'proxy' host: 'localhost' (Got an error reading communication packets)060802 17:20:16 [Warning] Aborted connection 33 to db: 'proxy' user: 'proxy' host: 'localhost' (Got an error reading communication packets)060802 17:20:16 [Warning] Aborted connection 20 to db: 'proxy' user: 'proxy' host: 'localhost' (Got an error reading communication packets)060802 17:20:16 [Warning] Aborted connection 25 to db: 'proxy' user: 'proxy' host: 'localhost' (Got an error reading communication packets)060802 17:20:16 [Warning] Aborted connection 30 to db: 'proxy' user: 'proxy' host: 'localhost' (Got an error reading communication packets)060802 17:20:16 [Warning] Aborted connection 9 to db: 'proxy' user: 'proxy' host: 'localhost' (Got an error reading communication packets)060802 17:20:16 [Warning] Aborted connection 35 to db: 'proxy' user: 'proxy' host: 'localhost' (Got an error reading communication packets)060802 17:20:16 [Warning] Aborted connection 15 to db: 'proxy' user: 'proxy' host: 'localhost' (Got an error reading communication packets)060802 17:20:16 [Warning] Aborted connection 21 to db: 'proxy' user: 'proxy' host: 'localhost' (Got an error reading communication packets)060802 17:20:16 [Warning] Aborted connection 19 to db: 'proxy' user: 'proxy' host: 'localhost' (Got an error reading communication packets)060802 17:20:16 [Warning] Aborted connection 29 to db: 'proxy' user: 'proxy' host: 'localhost' (Got an error reading communication packets)060802 17:20:16 [Warning] Aborted connection 10 to db: 'proxy' user: 'proxy' host: 'localhost' (Got an error reading communication packets)I copied my databases over to this proxy from another proxy, so I am wondering if that is part of the problem. Anyone have any ideas?! SER version is 0.9.6 and MySQL version is 5.0.21. Thanks in advance.Steve
_________________________________________________________________
Try Live.com: where your online world comes together - with news, sports, weather, and much more.
http://www.live.com/getstarted
Hello,
I was wondering if anyone was using this in conjunction with Cisco Call
manager to get out to a voip network.
Call manager is horrible at SIP so I was hoping to have a h323
connection from Call manager to SER, the SER box would take that
connection and forward it with SIP out to a voip peering fabric we are
testing out. I know asterisk can be used in this fashion but had some
voice quality issues and figured this piece of software might be better
suited. Just hoping someone has done this and can confirm and maybe
point me in the right direction for a how-to?
Thanks,
Javier
All,
I have just installed the RPM,
openser-1.1.0-rhel3.0.i386.rpm
<http://openser.org/pub/openser/latest/packages/rhel-3.0/openser-1.1.0-r
hel3.0.i386.rpm> , on my Linux box (Linux ... 2.4.21-4.EL #1 Fri Oct 3
18:13:58 EDT 2003 i686 i686 i386 GNU/Linux), and I am having some big
problems on startup- Openser never seems to really finish starting.
/var/log/messages shows:
Jan 25 04:09:08 plat-proxy openser: 0(1567) init_tcp: using sigio_rt as
the io watch method (auto detected)
Jan 25 04:09:08 plat-proxy openser: 0(0) INFO: statistics manager
successfully initialized
Jan 25 04:09:08 plat-proxy openser: 0(0) StateLess module -
initializing
Jan 25 04:09:08 plat-proxy openser: 0(0) TM - initializing...
Jan 25 04:09:08 plat-proxy openser: 0(0)
Jan 25 04:09:08 plat-proxy openser: Maxfwd module- initializing
Jan 25 04:09:08 plat-proxy openser: 0(0) TextOPS - initializing
Jan 25 04:09:08 plat-proxy openser: 0(0) INFO: udp_init: SO_RCVBUF is
initially 65535
Jan 25 04:09:08 plat-proxy openser: 0(0) INFO: udp_init: SO_RCVBUF is
finally 131070
Jan 25 04:09:08 plat-proxy openser: 0(0) WARNING: using only the first
listen address (no fork)
Jan 25 04:09:08 plat-proxy openser: 2(1569) INFO: fifo process
starting: 1569
Jan 25 04:09:08 plat-proxy openser: 2(1569) INFO:open_uac_fifo: fifo
server up at /tmp/openser_fifo...
Jan 25 04:09:12 plat-proxy openser: 2(1569) INFO: no fifo_db_url given
- fifo DB commands disabled!
And that's all.
Did I miss a step? I cant find any references to db_url in my Config
file, and I am using the default one (plus debug variables).
Can anyone offer some help? Thanks!
Louis
This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you.
Hello everybody,
I'm new to SER and try to write my first config file. After reading the Admin guide & the getting started Tutorial on onsip I still cannot configure my SER.
In the test setup I have two systems --
1. The Linux server ( where the SER is running)
2. one win XP system ( SIP UA).
The linux server has two LAN cards one with a private IP and one with a public one.
The SIP - Client has an account at a VoIP - Provider (sipgate).
What I want the SER to do is to forward the call to the provider and to accept incoming calls.
No authorisation or mysql things nedeed.
I put in the cfg - file that SER should listen on both(public & private) interfaces.
Until now SER forwards the call but he doesn't change the private IP - Address to the public one.
Any ideas how I could solve the problem?
Thanks in advance and excuse my bad english :-)
______________________________________________________________
Verschicken Sie romantische, coole und witzige Bilder per SMS!
Jetzt bei WEB.DE FreeMail: http://f.web.de/?mc=021193
Hi All,
I have a client using an asterisk server for them to use my sip proxy, what
I did was add a trunk on their asteriks with a local extension from my SER
sip proxy.
Can I also just do a prefix ID for them instead of trunk? Meaning when they
send me a call they should prefix it with e.g 1234# so I will identify that
it came from that client, and how can I account that?
TIA
Regards
Nhadie
________________________________________________
Message sent using UebiMiau 2.7