Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - Anton

Pages: [1]
1
Yate bugs / Unable to start SCTP listener
« on: July 20, 2023, 02:20:19 AM »
None of these examples start a SCTP listener:
https://docs.yate.ro/wiki/Configure_M2UA
https://docs.yate.ro/wiki/Configure_M3UA
https://docs.yate.ro/wiki/Miscellaneous_configurations

For example:

sigtransport.conf
-------------------
[sctp-gw]
type=sctp
stream=true
local=127.0.0.1:2904
endpoint=false <-- not affected!

ysigchan.conf
-------------------
[m3ua-gw]
type=ss7-m3ua-gateway
sig=sctp-gw

It does not start sctp listener:

#lsmod|grep sctp
sctp                  278528  2
libcrc32c              16384  1 sctp

# cat /proc/net/sctp/eps
 ENDPT     SOCK   STY SST HBKT LPORT   UID INODE LADDRS

# netstat -pnla
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name   
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1783/sshd                   
tcp        0      0 127.0.0.1:5038          0.0.0.0:*               LISTEN      1995/yate


After doing many tests, I made sure that yate successfully creates only m2pa and m3ua-client connections.
Any ideas how to make a m3ua-gateway ?

Best regards, Anton

2
Yate users hangout place / docs.yate.ro - broken links!
« on: July 19, 2023, 06:02:23 AM »
I see a lot of broken links of image files on docs.yate.ro

https://docs.yate.ro/wiki/index.php?title=Special%3AAllPages&from=&to=&namespace=6

3
Yate users hangout place / Where is the Yate's community?
« on: July 26, 2021, 04:33:11 AM »
Where is the Yate's community?

Forum is inactive.
IRC cannel is closed
Mailing list is closed
Discord link is broken

Thanks

4
Hello dear Community.

I have letsencrypt certbot generated files:
privkey.pem - rsa private key,
cert.pem - signed certificate,
chain.pem - chain of letsencrypt certs,
fullchain.pem - chain of letsencript certs with cert.pem

ysipchan.conf:
ssl_certificate_file=fullchain.pem
ssl_key_file=privkey.pem
[listener SIPTLS]
enabled=yes
default=no
type=tls
addr=x.x.x.x
port=5061
sslcontext=server_context

openssl.conf
[server_context]
enable=yes
domains=*.mydomain,ip1,ip2
certificate=fullchain.pem
key=privkey.pem

regexroute.conf
[outgoing]
^123.*=sip/sip:otherserver;oip=ip1;oip_transport=tls;oconnection_id=SIPTLS

TEST
openssl s_client -connect myserver:5061 = cert is OK
openssl s_client -connect otherserver:5061 = cert is OK
call from myserver to otherserver = TIMEOUT
yate.log:
<openssl:WARN> Certificate verify error 20: UNABLE_TO_GET_ISSUER_CERT_LOCALLY

May be someone have experience with yate sip tls and letsencrypt certs?

Best regards,
Anton

5
Dear Colleagues,

Please add the support of broadcast type of message to external module protocol.

Best regards,
Anton

6
Yate based projects / Nodejs library compatible to javascript.yate
« on: January 26, 2020, 11:28:40 AM »
Here is yet another javascript library for Yate. ;)
https://github.com/0LEG0/next-yate
I developed it in order to go beyond the boundaries of the javascript.yate sandbox, but at the same time tried to preserve the original API.
It is still in the experiment stage, but elisa.js is already working. :)

Best regards,
Anton

7
Yate IVR / Nodejs library compatible to javascript.yate
« on: January 26, 2020, 11:09:16 AM »
Maybe someone will be useful
https://github.com/0LEG0/next-yate
Best regards,
Anton

8
Features requests / Javascript support improvement
« on: November 25, 2019, 01:12:58 PM »
Dear Colleagues!

Сurrent javascript support level is very low.

1. Оbjects do not support expressions. For example: { key: expression }
2. Incorrectly accepted types returned by expressions. For example: "hello world".split(" ")[0]
3. Lack of basic Array methods.
4. Very low performance and memory leak on large arrays or objects, noticeably starting at 1000 items.

This is only a small part of yate's javascript lacks.

Best regards, Anton

9
Yate bugs / Rmanager mutex error
« on: June 21, 2017, 09:55:02 AM »
Dear Colleagues!

Periodically I see in Yate's log following errors:
----------------------------------------------------
20170621143618.000069 <engine:MILD> Creating new message dispatching thread (4 running)
20170621143618.749978 <engine:WARN> Engine is congested: Call endpoint mutex busy
20170621143620.000069 <engine:MILD> Creating new message dispatching thread (5 running)
20170621143622.000079 <engine:MILD> Creating new message dispatching thread (6 running)
Supervisor: child 10193 died on signal 6
Yate (10247) is starting Wed Jun 21 14:36:25 2017
...

Mentioned core dump lines:
----------------------------------------------------
Thread 1 (Thread 0x7f2f47db6700 (LWP 10168)):
#0  0x00007f2f5b56e125 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007f2f5b5713a0 in abort () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x00007f2f5c0cb3fb in TelEngine::Debug(int, char const*, ...) () from /usr/lib/libyate.so.5.5.1
#3  0x00007f2f5c0ce148 in TelEngine::MutexPrivate::lock(long) () from /usr/lib/libyate.so.5.5.1
#4  0x00007f2f5aee19a0 in Lock (maxwait=-1, lck=0x7f2f5b11d7a0, this=<synthetic pointer>) at ../yateclass.h:5363
#5  complete (msg=..., this=0x7f2f48104c30, minimal=<optimized out>) at ysipchan.cpp:7376
#6  (anonymous namespace)::YateSIPConnection::complete (this=0x7f2f48104c30, msg=..., minimal=false) at ysipchan.cpp:7371
#7  0x00007f2f5c109ad6 in TelEngine::Channel::message(char const*, bool, bool) () from /usr/lib/libyate.so.5.5.1
#8  0x00007f2f5c109b3d in TelEngine::Channel::connected(char const*) () from /usr/lib/libyate.so.5.5.1
#9  0x00007f2f5c106f24 in TelEngine::CallEndpoint::connect(TelEngine::CallEndpoint*, char const*, bool) () from /usr/lib/libyate.so.5.5.1
#10 0x00007f2f5876cc88 in (anonymous namespace)::ForkModule::msgExecute (msg=..., this=<error reading variable: Unhandled dwarf expression opcode 0xfa>) at callfork.cpp:782
#11 0x00007f2f5876e7c8 in (anonymous namespace)::ForkModule::received (this=0x7f2f589709e0, msg=..., id=256) at callfork.cpp:854
#12 0x00007f2f5c0f50df in TelEngine::MessageDispatcher::dispatch(TelEngine::Message&) () from /usr/lib/libyate.so.5.5.1
#13 0x00007f2f5c107cb6 in TelEngine::Router::route() () from /usr/lib/libyate.so.5.5.1
#14 0x00007f2f5c10b89b in TelEngine::Router::run() () from /usr/lib/libyate.so.5.5.1
#15 0x00007f2f5c0cfc05 in TelEngine::ThreadPrivate::run() () from /usr/lib/libyate.so.5.5.1
#16 0x00007f2f5c0cfc49 in TelEngine::ThreadPrivate::startFunc(void*) () from /usr/lib/libyate.so.5.5.1
#17 0x00007f2f5c3e9b50 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#18 0x00007f2f5b619fbd in clone () from /lib/x86_64-linux-gnu/libc.so.6
#19 0x0000000000000000 in ?? ()

And probably here is part of problem code:
------------------------------------------------------
bool ForkModule::msgExecute(Message& msg)
{
    CallEndpoint* ch = YOBJECT(CallEndpoint,msg.userData());
    if (!ch)
   return false;
    String dest(msg.getParam("callto"));
    if (!dest.startSkip(MOD_PREFIX))
   return false;
    ObjList* targets = 0;
    if (dest)
   targets = dest.split(' ',false);
    else {
   for (int n = 1; true; n++) {
       String prefix;
       prefix << "callto." << n;
       NamedString* ns = msg.getParam(prefix);
       if (!ns)
      break;
       if (TelEngine::null(ns))
      continue;
       // Set target parameters from enclosed list
       // Override/add new params from message sub-params
       NamedPointer* np = YOBJECT(NamedPointer,ns);
       NamedList* target = YOBJECT(NamedList,np);
       if (target) {
      np->takeData();
      target->assign(*ns);
       }
       else
      target = new NamedList(*ns);
       target->copySubParams(msg,prefix + ".");
       if (!targets)
      targets = new ObjList;
       targets->append(target);
       // Clear from initial message
       msg.clearParam(prefix,'.');
   }
    }
    if (!(targets && targets->skipNull())) {
   msg.setParam("error","failure");
   TelEngine::destruct(targets);
   return false;
    }
    CallEndpoint::commonMutex().lock();
    ForkMaster* master = new ForkMaster(targets);
    bool ok = master->connect(ch,msg.getValue("reason")) && master->startCalling(msg); // <------------------- line 782
    CallEndpoint::commonMutex().unlock();
    master->deref();
    return ok;
}

Best regards!

Pages: [1]