Re: Origin-State-Id in CCR Messages

208 views
Skip to first unread message

Laurențiu Nedelcu

unread,
Feb 6, 2013, 3:57:01 AM2/6/13
to mobicent...@googlegroups.com
Has anyone faced this issue?

Alexandre Mendonça

unread,
Feb 6, 2013, 6:23:58 AM2/6/13
to mobicent...@googlegroups.com
Hi Laurentiu,

I don't think there's a way for you to obtain such information.. at least a clean one. This should be something the stack should be taking care of automatically, but honestly I don't recall from top of my head having any code for doing it.

What could be done is, if you add the Origin-State-Id AVP to your message, with any value, the stack would replace it by the proper value. How would that work for you ?

If you want this, please open a new issue at http://code.google.com/p/jdiameter/issues/entry?template=Feature%20request for a new feature request.

Thanks & Regards,

--
Alexandre Mendonça // JBoss R&D
http://ammendonca.blogspot.com/


On Wed, Feb 6, 2013 at 8:57 AM, Laurențiu Nedelcu <laurenti...@gmail.com> wrote:
Has anyone faced this issue?

--
You received this message because you are subscribed to the Google Groups "mobicents-public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mobicents-publ...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Richard Good

unread,
Feb 6, 2013, 6:29:35 AM2/6/13
to mobicent...@googlegroups.com
Hi

I've also had the issue and eventually made a round about way of setting origin-state-Id AVP for my diameter applications.

Agreed it would make much more sense for the stack to take of this and would support this:

What could be done is, if you add the Origin-State-Id AVP to your message, with any value, the stack would replace it by the proper value. How would that work for you ?

Regards
Richard.

This email is subject to the disclaimer of Smile Communications (PTY) Ltd. at http://www.smilecoms.com/disclaimer

Message has been deleted
Message has been deleted

Laurentiu Nedelcu

unread,
Feb 6, 2013, 4:55:42 PM2/6/13
to mobicent...@googlegroups.com
Hi,

I see a simpler solution.
 
What could be done is, if you add the Origin-State-Id AVP to your message, with any value, the stack would replace it by the proper value. How would that work for you ?

Besides the current method void setOriginStateId(long originStateId) a new one taking no parameters shall be added, for example void setOriginStateId(). If this method with no parameters is called then the stack will set Origin-State-Id AVP value to the value used for CER and DWR.

The current method which sets the CCR Origin-State-Id AVP with the value from the parameter originStateId shall be kept as is. This behavior is necessary for services implementing relay, proxy, and redirect Diameter agents because they forward the CCR Origin-State-Id AVP from the incoming CCR and not the one set by the stack in CER/DWR.

And this method with no parameters shall be used optional as the older one.

Thanks,
Laur

PS: I'll trigger an issue when we got a final solution in this thread. Please let me know if setting it right now helps in any way

Message has been deleted

Sean Hayden

unread,
Feb 7, 2013, 8:54:35 AM2/7/13
to <mobicents-public@googlegroups.com>
I've been running some tests with the latest MMS 3.X git trunk release and have had some odd behavior.  Incidentally, this is also occurring in MMS 2.X

I'm running 10 concurrent calls.  The issue boils down to this:

An RQNT command was sent to an endpoint with multiple prompts to play.  The endpoint played the initial prompt then played 3 more prompts that were not part of the RQNT followed by an exception.  The exception seems to imply the Options object incorrectly parsed the RQNT command, but because it played prompts not even part of the RQNT command, it seems like the options parsed a different endpoints RQNT … or the options object was sharing a buffer !?!?

Here are some snippets of the logs:

INITIAL RQNT REQUEST:

2013-02-06 21:15:04,370 DEBUG [MgcpProvider] (Thread-26) :__: Parsing message: RQNT 847956813 mobicents/asr/3...@172.30.0.80:2427  MGCP 1.0
N:172.3...@172.30.0.80:2727
X:385
S:AU/pa(an=file:///opt/voicelog/promptroot//abc-east/Hammer_eng/1004/0.wav;file:///opt/voicelog/promptroot//generic/Hammer_eng/3/3.wav;file:///opt/voicelog/promptroot//generic/Hammer_eng/2/3.wav;file:///opt/voicelog/promptroot//generic/Hammer_eng/1/3.wav;file:///opt/voicelog/promptroot/defaultPrompts/english_di/97/0.wav;file:///opt/voicelog/promptroot//generic/Hammer_eng/9/3.wav;file:///opt/voicelog/promptroot//generic/Hammer_eng/9/3.wav;file:///opt/voicelog/promptroot//generic/Hammer_eng/0/3.wav;file:///opt/voicelog/promptroot/defaultPrompts/english_di/97/0.wav;file:///opt/voicelog/promptroot//generic/Hammer_eng/0/3.wav;file:///opt/voicelog/promptroot//generic/Hammer_eng/3/3.wav;file:///opt/voicelog/promptroot//generic/Hammer_eng/0/3.wav;file:///opt/voicelog/promptroot//generic/Hammer_eng/2/3.wav)
R:AU/oc (N),AU/of (N)
_::_



And here is the next file to play.  Looks like some kind of memory corruption (file:///opt/voicelog/promptroot//generic/Hammer_eng/1/3.wav;file:/).  I say corruption because I've also seen exceptions for file names like:

Unknown extension: wav N:172.3...@172.30.0.80:27


2013-02-06 21:15:11,089 INFO  [AudioPlayerImpl] (Thread-28) :__: (mobicents/asr/3) End of file reached_::_
2013-02-06 21:15:11,089 INFO  [Play] (Thread-28) :__: (mobicents/asr/3) Announcement (segment=3) has completed_::_
2013-02-06 21:15:11,089 INFO  [Play] (Thread-28) :__: (mobicents/asr/3) Start announcement (segment=4)_::_
2013-02-06 21:15:11,089 INFO  [AudioPlayerImpl] (Thread-28) :__: (mobicents/asr/3) unknown extension:file:///opt/voicelog/promptroot//generic/Hammer_eng/1/3.wav;file:/_::_
1,090 ERROR [AudioPlayerImpl] (Thread-28) :__: (mobicents/asr/3) error occured_::_
org.mobicents.media.server.spi.ResourceUnavailableException: Unknown extension: file:///opt/voicelog/promptroot//generic/Hammer_eng/1/3.wav;file:/
       at org.mobicents.media.server.impl.resource.mediaplayer.audio.AudioPlayerImpl.setURL(AudioPlayerImpl.java:165)
       at org.mobicents.media.server.mgcp.pkg.au.Play.startAnnouncementPhase(Play.java:112)
       at org.mobicents.media.server.mgcp.pkg.au.Play.next(Play.java:194)
       at org.mobicents.media.server.mgcp.pkg.au.Play.process(Play.java:209)
       at org.mobicents.media.server.mgcp.pkg.au.Play.process(Play.java:48)
       at org.mobicents.media.server.spi.listener.Listeners.dispatch(Listeners.java:117)
       at org.mobicents.media.server.impl.resource.mediaplayer.audio.AudioPlayerImpl.completed(AudioPlayerImpl.java:210)
       at org.mobicents.media.server.impl.AbstractSource$Worker.perform(AbstractSource.java:441)
       at org.mobicents.media.server.scheduler.Task.run(Task.java:117)
       at org.mobicents.media.server.scheduler.Scheduler$WorkerThread.run(Scheduler.java:408)
2013-02-06 21:15:11,090 INFO  [Play] (Thread-28) :__: Received URL can not be found , firing of_::_
2013-02-06 21:15:11,091 INFO  [MGCP] (Thread-28) :__: tx=151 Started, message= NTFY mobicents/asr/3...@172.30.0.80:2427, call agent = tpvmedia3.bic-bill.com/172.30.0.80:2727_::_




tshark.cap
ATT00001.htm
mms.log.gz
ATT00002.htm

Alexandre Mendonça

unread,
Feb 21, 2013, 6:51:13 AM2/21/13
to mobicent...@googlegroups.com
Hi Laurentiu,

This seems to be a good approach, I had overlooked the behavior with agents. Thanks for reporting it at Issue #38.

If you have already made such change locally or feel comfortable doing it, you may want to submit a patch in the issue.

Thanks & Regards,

--
Alexandre Mendonça // JBoss R&D
http://ammendonca.blogspot.com/


--

Laurentiu Nedelcu

unread,
Mar 5, 2013, 11:30:48 AM3/5/13
to mobicent...@googlegroups.com
Hi Alexandre,

I uploaded the changes on Issue #38.

Basically an implementer of a Diameter CCA service can use the following call to set the Origin-State-Id AVP in a Diameter Credit-Control Request of Answer

        request.setOriginStateId();

Have a nice day,
Laurentiu

Alexandre Mendonça

unread,
May 27, 2013, 10:46:16 PM5/27/13
to Mobicents Public
Hi Laurentiu,

Thanks for the contribution. I will be having a look at it briefly and integrate it into the codebase.

Thanks & Regards,
Reply all
Reply to author
Forward
0 new messages