Hi everybody,
I have a presentation about OpenSER in the Open Source panel at VoN
Spring in San Jose, so I will be there from 18th to 23th of March.
If there are people interesting in meeting for discussions around
openser, VoIp, SIP related topics (beer not excluded :)), please drop me
a private email.
Regards,
Bogdan
Hello All,
Is there a proper way of handling 183 messages with SDP body generated
from a PSTN gateway?
I used this code snippet:
if ((isflagset(6) || isflagset(7)) && (status=~"(180)|(183)|2[0-9][0-9]")
if (!search("^Content-Length:[ ]*0")) {
use_media_proxy();
Unfortunately, the media SDP body included in the 183 Session Progress message still can't be heard on the
calling party. Are there any workarounds on this?
Thanks!
Hi,
two small questions this time :-)
1.) From 1.2.x modules dok, default rpid_avp for auth is:
modparam("auth", "rpid_avp", "$avp(s:rpid)")
However setting this gives a failure:
parse_avp_name: error - use type (s: or i:) in front of avp name
Mar 8 21:33:46 proxy-02 /usr/sbin/openser[16128]:
ERROR:auth:init_rpid_avp: invalid rpid AVP specs "$avp(s:rpid)"
Mar 8 21:33:46 proxy-02 /usr/sbin/openser[16128]: ERROR:auth:mod_init:
failed to process rpid AVPs
Mar 8 21:33:46 proxy-02 /usr/sbin/openser[16128]: init_mod(): Error
while initializing module auth
The "old" way still works: modparam("auth","rpid_avp","s:rpid")
2.)
Earlier I had
modparam("tm","fr_inv_timer_avp","s:inv_timeout")
and:
avp_db_load("$tu",s:inv_timeout) [inv_timeout attribute in database]
What would be the equivalent with the new avp configuration?
br hw
Hello!
I'm struggling with a issue since several days, since i make no more
efforts i'd like to ask you for help:
I'm trying to attach a exchange 2007 server to openser, most of the
features work(inbound call, refer) but i can't get a outbound call to
work as exc doesn't seem to like the SDP in my "200 OK" answer, i get no
ACK and no rtp-stream is sent from exchange. My setup looks like this:
________ _______ _____ ________
|asterisk|=======|openser|======|(NAT)|=======|exchange|
|________| |_______| |_____| |________|
2x.x.x.107 2x.x.x.106 62.x.x.193 10.1.99.97
A rtpproxy is running on the openser too, exchange is talking tcp...
In my openser-config i use the nathelper-module and rtpproxy to
traverse nat for the clients. This setup is working for all phones i've
tested so far, so imho it is useable.
Exchange has a feature that allows dialouts to read voicemail to e.g.
a mobile phone. It is using a standard INVITE dialog, in a local
network without nat i've been succesfull to attach exchange to sipx and
a phone registered at sipx and i guess it will also work with a local
openser who doesn't use nat-traversal features.
However, with the public openser where i have a NAT, exchange doesn't
seem to accept my sdp-proposal, i get no ACK and the rtp stream is only
sent by asterisk, not by exchange.
Unfortunately exchange offers no valuable debugging information, so i
have no idea what exactly it doesn't like about my answer - i did some
trial and error with different nat-helper-functions, activated and
deactivated them but so far it didn't make a difference(or the call
didn't got through at all due to missing nat-traversal).
I've uploaded wireshark-traces exported to text of the
working local dialog with sipX(http://pastebin.ca/383516) and the
non-working external dialog (http://pastebin.ca/383540) with
openser, maybe someone can take a look at it and check if
there's something wrong on my(=openser) side of the dialog - Thanks in
advance!
best regards
Christian
Hey Guys,
I have had this very strange problem ..
I have 2 PSTN gateways to allow for inbound and outbound calls.
INBOUND calls from PSTN will reach one of these gateways (depending on
the provider) and then directly routed to OPENSER. Gateways are cisco
AS5350.
The very strange thing is , on certain SIP-UAs that are being used
outside (most of them ADSL users) , calls that come inbound via Gateway
A can always ring the SIP-UA , calls coming inbound via Gateway B will
not get a response.
AND when i did a packet capture on the openser server , both gateways
forwarded SIP requests inwards to the server and both are being
processed . User Location is found and being routed. Both calls are
being routed to the same UA , same port .
So much for strange , anyone has any idea ?
Regards,
Sam
Hi Guys
Would this work ? (I have a working system and do not want to break it to test)
avp_db_load("$ruri/username", "*");
if( is_avp_set("$avp(s:callfwdimmediate)")) {
....
};
if( is_avp_set("$avp(s:callfwdbusy)")) {
....
};
if( is_avp_set("$avp(s:callfwdnoanswer)")) {
....
};
Thanks
Mike
Hi Gines!
It's almost clear to me how to do, this what i have done and it works.
now i need last clarification how forward the 200 OK from BYE request, i
cannot get it working.
for forwarding the 200 ok from the BYE in the doBye request i save
downstreamLeg.setAttribute("byereq", req) and then in the doResponse i
get the bye request and create the response from it,
something like this but i'm wrong.
if (resp.getStatus() == 200 && resp.getMethod().equalsIgnoreCase("BYE"))
{
SipServletRequest upstreamRequest =
(SipServletRequest)upstreamLeg.getAttribute("byereq");
SipServletResponse upstreamResponse =
upstreamRequest.createResponse(resp.getStatus(),resp.getReasonPhrase());
//Copy the content from the downstream response
to the upstream response
if (resp.getContentType() != null) {
upstreamResponse.setContent(resp.getRawContent(),
resp.getContentType());
}
upstreamResponse.send();
}
this is what i have done for working ACK.
protected void doAck(SipServletRequest req) throws ServletException,
IOException {
//Retrieve the upstream request to respond it
SipSession downstreamLeg =
(SipSession)req.getSession().getApplicationSession().getAttribute("downstreamLeg");
SipServletResponse downstreamResponse = (SipServletResponse)
downstreamLeg.getAttribute("200ok");
SipServletRequest ackRequest = downstreamResponse.createAck();
//Copy the content from the downstream response to the upstream
response
if (req.getContentType() != null) {
ackRequest.setContent(req.getRawContent(),
req.getContentType());
}
ackRequest.send();
}
protected void doBye(SipServletRequest req) throws ServletException,
IOException {
SipSession downstreamLeg =
(SipSession)req.getSession().getApplicationSession().getAttribute("downstreamLeg");
SipServletRequest byeRequest =
downstreamLeg.createRequest("BYE");
// Copy the content from the downstream response to the upstream
response
if (req.getContentType() != null) {
byeRequest.setContent(req.getRawContent(),
req.getContentType());
}
byeRequest.send();
}
protected void doResponse(SipServletResponse resp) throws
ServletException, IOException {
if (resp.getStatus() == 200 &&
resp.getMethod().equalsIgnoreCase("INVITE")) {
SipSession downstreamLeg = (SipSession)
resp.getSession().getApplicationSession().getAttribute("downstreamLeg");
downstreamLeg.setAttribute("200ok",resp);
}
//Retrieve the upstream request to respond it
SipSession upstreamLeg =
(SipSession)resp.getSession().getApplicationSession().getAttribute("upstreamLeg");
}
On Mon, 2007-03-05 at 00:29 +0100, Ginés Gómez wrote:
> The problem is that you didn't implement the doACK method. Implement
> it following a similar technique as the one used in doResponse. Save
> the 200OK response in the downstream session so you can retrieve it
> when the ACK arrives from the upstream then generate ACK using
> response.createACK() and copy the content using getContentType/
> setContentType geContent/setContent if required
>
>
> Hope it helps
>
> Gines
>
> > Attached there is a .zip with all the log, trace and configuration.
> >
> > thanks for the support,
> >
> > :tele
> > <wesip_test.zip>
> > _______________________________________________
> > Users mailing list
> > Users(a)openser.org
> > http://openser.org/cgi-bin/mailman/listinfo/users
>
Hello all,
i need to do additional accounting for final replies with the acc module,
especially distinguish local from forwarded replies. We patched 0.9.5 for
this functionality. We add a flag to the message, that is set by tm, and read
from the acc module and then added to the log message.
Is this possible in 1.2 with the extra accounting functions and pseudo
variables? Or is the approach described above still prefered?
I know that there exist the t_local_replied() function in tm, and it is
perhaps with that possible to log a message in the config file with
add_log_request(). But it would be nice if this information could be included
in the normal accounting log message.
Thanks,
Henning
I have openser listening in 2 different interfaces, and it works great.
My question is about users with different ip ranges: do they have to be
able to see each other (same ip range or through a gateway), or openser
must/can allow/route that communication?
Thanx a lot.
Lucas