Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Example for Diameter as a PROXY Agent #143

Open
kuixian opened this issue Nov 5, 2018 · 3 comments
Open

Example for Diameter as a PROXY Agent #143

kuixian opened this issue Nov 5, 2018 · 3 comments

Comments

@kuixian
Copy link

kuixian commented Nov 5, 2018

I need to complete some functions:

Question 1: When Jdiameter server received the CCR, I want send this CCR to other Jdiameter server,such as Online Charging System;
Question 2: When Online Charging System response CCA to Jdiameter server, Jdiameter server need redirect the CCA to client;

Question 1, I am finish, I change the AVP about Avp.DESTINATION_HOST And Avp.DESTINATION_REALM,but I think it not a good choice, please advise;

Question 2,Jdiameter server can received Online Charging System, but I can not redirect the CCA to client, please advise;

I can not find demo about Example for Diameter as a PROXY Agent / Redirect,

Thank you in advance,

@tom130
Copy link

tom130 commented Nov 5, 2018

Hello,
Trying to brainstorm a little:

  1. Check the RFC6733, there are some points which can help you with the architecture. Basically, if you want to do some kind of DRA, you have two options
    a) redirect even the state information like CER, CEA, DWR, DWA and you are handling the TCP mainly
    b) you will have a separate Diameter stack per each “side”, if you want to do the topology hiding you need to exchange the AVPs (seen on production grade entity) and save the origin host AVPs to your app per every session (if you want to create messages like RAR while acting as a PCRF or OCS entity) Answers are easy, because you can match them by EndtoEnd and HopByHop. While designing, you can use also Proxy-Host AVP to help you a little.

  2. I dont understand, please describe it in more words.

Regards,
Tomas

@kuixian
Copy link
Author

kuixian commented Nov 5, 2018

@tom130 thanks for raising this!
yes, I want to build DRA program, but I am a jdiameter beginner, I only update the Examples/guide1 some code, please see the attachment and give some advise;

DraListener.txt

By the way,as you said "a) redirect even the state information like CER, CEA, DWR, DWA and you are handling the TCP mainly" is txt function sendCreditControlRequest / sendCreditControlAnswer, right? Please advice, thank you very much.

Look forward to your reply,
Regards,
kuixian

@atari83
Copy link

atari83 commented Jul 27, 2020

Hello,
Trying to brainstorm a little:

  1. Check the RFC6733, there are some points which can help you with the architecture. Basically, if you want to do some kind of DRA, you have two options
    a) redirect even the state information like CER, CEA, DWR, DWA and you are handling the TCP mainly
    b) you will have a separate Diameter stack per each “side”, if you want to do the topology hiding you need to exchange the AVPs (seen on production grade entity) and save the origin host AVPs to your app per every session (if you want to create messages like RAR while acting as a PCRF or OCS entity) Answers are easy, because you can match them by EndtoEnd and HopByHop. While designing, you can use also Proxy-Host AVP to help you a little.
  2. I dont understand, please describe it in more words.

Regards,
Tomas

Hey Tom,

I have an off-topic question about RAR commands.
According to Nokia reference ( https://infocenter.nokia.com/public/7750SR160R1A/index.jsp?topic=%2Fcom.sr.Gy%2Fhtml%2F7750_sr_os_diameter_gy_interface.html ), Section 2.3.1 :

It is mentioned that Proxy-Info and Route-Record should not be used when creating RAR requests.
There is no such thing in rfc6733 tho (if i'm not mistaken)

I'm asking this, because my node is behind a diameter proxy, and it will add Route-Record to my RAR request message anyway.

So, just wanted to make sure if I'm not doing anything wrong.

Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants