Erlang/OTP diameter relay doesn't work

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Erlang/OTP diameter relay doesn't work

Asier Gutierrez Rubio

Hi there,


We are trying to build a simple diameter relay agent for our company which will connect diameter clients to a number of different billing diameter servers. Right now we are just testing the system with one client and one server.


Unfortunately, we are unable to get even the relay example from ericsson repository working.


https://github.com/erlang/otp/tree/master/lib/diameter/examples/code


We modified slightly the example to connect to our diameter server on a remote address and listen to the local port TCP/3868. The relay agent connects successfully to our diameter server, performing a full CER/CEA exchange and subsequent DWR/DWA. Our client successfully connects to the relay agent through CER/CEA, but when the client sends a Credit Control Request (AVP Request-Type:4, Requested_Action: 2, Command-Code: 272), we get 3001 DIAMETER_COMMAND_UNSUPPORTED consistently, every single time. Peer_up callback is called, but no handle_request or pick_peer callback is called. When we try to use the same client with the server directly, everything works fine and we get 2001 SUCCESS.


We are sure we are missing something, maybe a parameter in the transport options, a callback that we need to implement or something like that.


Could you give us a hint?


Thanks in advance,

Asier


Информация в этом сообщении предназначена исключительно для конкретных лиц, которым она адресована. В сообщении может содержаться конфиденциальная информация, которая не может быть раскрыта или использована кем-либо кроме адресатов. Если вы не адресат этого сообщения, то использование, переадресация, копирование или распространение содержания сообщения или его части - незаконно и запрещено. Если Вы получили это сообщение ошибочно, пожалуйста, незамедлительно сообщите отправителю об этом и удалите со всем содержимым само сообщение и любые возможные его копии и приложения.

The information contained in this communication is intended solely for the use of the individual or entity to whom it is addressed and others authorized to receive it. It may contain confidential or legally privileged information. The contents may not be disclosed or used by anyone other than the addressee. If you are not the intended recipient(s), any use, disclosure, copying, distribution or any action taken or omitted to be taken in reliance on it is prohibited and may be unlawful. If you have received this communication in error please notify us immediately by responding to this email and then delete the e-mail and all attachments and any copies thereof.


_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions
Reply | Threaded
Open this post in threaded view
|

Re: Erlang/OTP diameter relay doesn't work

anders.gs.svensson-2
Hi Asier.

Assuming you've configured the relay application as in the example,
the only reason you should get 3001 is if your CCR doesn't set the
P-bit, in which case it has to be locally processed.

Anders


[hidden email] writes:
>
> We are trying to build a simple diameter relay agent for our company which will connect diameter clients to a number of different billing diameter servers. Right now we are just testing the system with one client and one server.
>
>
> Unfortunately, we are unable to get even the relay example from ericsson repository working.


> We modified slightly the example to connect to our diameter server on a remote address and listen to the local port TCP/3868. The relay agent connects successfully to our diameter server, performing a full CER/CEA exchange and subsequent DWR/DWA. Our client successfully connects to the relay agent through CER/CEA, but when the client sends a Credit Control Request (AVP Request-Type:4, Requested_Action: 2, Command-Code: 272), we get 3001 DIAMETER_COMMAND_UNSUPPORTED consistently, every single time. Peer_up callback is called, but no handle_request or pick_peer callback is called. When we try to use the same client with the server directly, everything works fine and we get 2001 SUCCESS.
>
>
> We are sure we are missing something, maybe a parameter in the transport options, a callback that we need to implement or something like that.
>
>
> Could you give us a hint?
>
>
> Thanks in advance,
>
> Asier
_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions
Reply | Threaded
Open this post in threaded view
|

Re: Erlang/OTP diameter relay doesn't work

Asier Gutierrez Rubio
Hi Anders,

Thanks for the advice!!! You were right, we didn't have the P-bit set. Now it works fine!
________________________________________
From: Anders Svensson GS <[hidden email]>
Sent: Thursday, October 10, 2019 1:17 PM
To: [hidden email]
Cc: Asier Gutierrez Rubio
Subject: Re: Erlang/OTP diameter relay doesn't work

Hi Asier.

Assuming you've configured the relay application as in the example,
the only reason you should get 3001 is if your CCR doesn't set the
P-bit, in which case it has to be locally processed.

Anders


[hidden email] writes:
>
> We are trying to build a simple diameter relay agent for our company which will connect diameter clients to a number of different billing diameter servers. Right now we are just testing the system with one client and one server.
>
>
> Unfortunately, we are unable to get even the relay example from ericsson repository working.


> We modified slightly the example to connect to our diameter server on a remote address and listen to the local port TCP/3868. The relay agent connects successfully to our diameter server, performing a full CER/CEA exchange and subsequent DWR/DWA. Our client successfully connects to the relay agent through CER/CEA, but when the client sends a Credit Control Request (AVP Request-Type:4, Requested_Action: 2, Command-Code: 272), we get 3001 DIAMETER_COMMAND_UNSUPPORTED consistently, every single time. Peer_up callback is called, but no handle_request or pick_peer callback is called. When we try to use the same client with the server directly, everything works fine and we get 2001 SUCCESS.
>
>
> We are sure we are missing something, maybe a parameter in the transport options, a callback that we need to implement or something like that.
>
>
> Could you give us a hint?
>
>
> Thanks in advance,
>
> Asier
________________________________


Информация в этом сообщении предназначена исключительно для конкретных лиц, которым она адресована. В сообщении может содержаться конфиденциальная информация, которая не может быть раскрыта или использована кем-либо кроме адресатов. Если вы не адресат этого сообщения, то использование, переадресация, копирование или распространение содержания сообщения или его части - незаконно и запрещено. Если Вы получили это сообщение ошибочно, пожалуйста, незамедлительно сообщите отправителю об этом и удалите со всем содержимым само сообщение и любые возможные его копии и приложения.

The information contained in this communication is intended solely for the use of the individual or entity to whom it is addressed and others authorized to receive it. It may contain confidential or legally privileged information. The contents may not be disclosed or used by anyone other than the addressee. If you are not the intended recipient(s), any use, disclosure, copying, distribution or any action taken or omitted to be taken in reliance on it is prohibited and may be unlawful. If you have received this communication in error please notify us immediately by responding to this email and then delete the e-mail and all attachments and any copies thereof.
_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions