1
Yate bugs / M2PA and MTP2 on the same server
« on: February 28, 2014, 01:45:42 PM »
Hello Null.ro team,
We are using yate for interconnecting with a MNO in Belgium. The interconnection is done over MTP2. In our setup, I have two Yate machines playing the role of STP and facing the two STP's of the MNO. To allow messages to flow between yates, I want to connect both Yate to each other using M2PA. However I noticed something strange. After trying to get the M2PA link in-service for a day without success (although I succeeded in my lab many times previously), my M2PA link aligned suddenly itself when the MTP2 links were shut down by the MNO. As soon as the MTP2 links came back up a few hours afterwards, the M2PA link lost its alignment automagically and went OOS. The M2PA endpoint=yes then sends a OOS M2PA, and the receiving yate (endpoint=no) sends a SHUTDOWN, refusing the connection.
I looked into the code and this is where the M2PA connection gets rejected:
sigtransport.cpp
bool Transport::addSocket(Socket* socket,SocketAddr& socketAddress)
{
if (m_listenNotify) {
String* name = new String("Transport:");
name->append(socketAddress.host() + ":");
name->append((int)socketAddress.port());
addName(name);
Transport* newTrans = new Transport((TransportType)m_type,name);
if (!transportNotify(newTrans,socketAddress)) {
DDebug(this,DebugInfo,"New transport wasn't accepted!");
return false;
}
....
transportNotify(newTrans,socketAddress) return false and connection gets shutdowned.
I am using Yate from SVN http://voip.null.ro/svn/yate revision 5640
Thank you for your help,
Francois
We are using yate for interconnecting with a MNO in Belgium. The interconnection is done over MTP2. In our setup, I have two Yate machines playing the role of STP and facing the two STP's of the MNO. To allow messages to flow between yates, I want to connect both Yate to each other using M2PA. However I noticed something strange. After trying to get the M2PA link in-service for a day without success (although I succeeded in my lab many times previously), my M2PA link aligned suddenly itself when the MTP2 links were shut down by the MNO. As soon as the MTP2 links came back up a few hours afterwards, the M2PA link lost its alignment automagically and went OOS. The M2PA endpoint=yes then sends a OOS M2PA, and the receiving yate (endpoint=no) sends a SHUTDOWN, refusing the connection.
I looked into the code and this is where the M2PA connection gets rejected:
sigtransport.cpp
bool Transport::addSocket(Socket* socket,SocketAddr& socketAddress)
{
if (m_listenNotify) {
String* name = new String("Transport:");
name->append(socketAddress.host() + ":");
name->append((int)socketAddress.port());
addName(name);
Transport* newTrans = new Transport((TransportType)m_type,name);
if (!transportNotify(newTrans,socketAddress)) {
DDebug(this,DebugInfo,"New transport wasn't accepted!");
return false;
}
....
transportNotify(newTrans,socketAddress) return false and connection gets shutdowned.
I am using Yate from SVN http://voip.null.ro/svn/yate revision 5640
Thank you for your help,
Francois