On 01/18/2015 05:42 AM, Stefan Sayer wrote: > Dmitry Sinina wrote on 01/17/2015 09:32 PM: >> On 01/12/2015 04:01 PM, John Nash wrote: >>> Dear Stefan, >>> >>> I am using SBC application and want to use it to log CDR for connected >>> as well as failed calls. I saw syslog_cdr module I have following questions >>> >>> 1- In syslog CDR conf file I can specify >>> cdr_format=$ltag,$start_tm,$connect_tm,$end_tm,$duration,MyHeader >>> >>> from "myheader" do you mean whatever header are part of Invite message >>> including custom headers? Also what about additional information which > yes, but I think you have to configure it in the call control > configuration, e.g. > call_control=cdr > cdr_module=cc_syslog_cdr > cdr_MyHeader=$H(MyHeader) > >>> is not in the Invite but comes later like hangup direction, disconnect >>> cause code/reason etc. > > try $hangup_cause, $hangup_initiator and $disposition > >>> >>> 2- Is there any way we can log CDR to postgresql database? > you'll have to post-process from syslog (e.g. with rsyslogd). > > >>> >> >> >> You can try SEMS based solution for this: >> http://yeti-switch.org/ >> >> We implemented such features by patching core and SBC module. >> > that's interesting. is the sems part also open source? > > thanks! > Stefan >
https://github.com/yeti-switch/yeti-node Our patches: - Call routing in Postgresql stored procedures. Connections to multiply DB for failover. - call rerouting on LegB. Switch will try next route if legB disconnected before 200OK. Rerouting conditions configurable per gateway. - CDR writing to Postgresql database. If rerouting happened CDR wrote for each call attempt. Connections to multiply DB for failover, ability to write CDRs to file if all connections broken. Skytools PGQ used for distributed CDR billing. - "Resource" abstraction. This mechanism allow us control capacity for many objects at same time. Resource states stored in Redis and this feature will work even if you have multiply SEMS nodes. - support transfer DTMF via SIP INFO. DTMF send/receive mode configurable per call leg - epoll for RTP sockets. We implemented this before libevent implementation was merged to master. - complete different codec negotiation model. You can specify which codecs supported on each call leg. - Ability to run multiply SEMS nodes with same IP on legB. We have special outgoing SIP load balancer for this. - Many fixes and small improvements in sbc app and core. This allow us run SEMS in production. - Many new XMLRPC methods to allow debugging on live system. Funny python CLI for XMLRPC. Ruby library https://github.com/yeti-switch/yetis_node - Lawful interception support In general YETI intended to act as class4 transit switch. It's allow intellectual rouging between multiple termination vendors. If you want try it, you can use demo site, or install software using our repo(debian 7 amd64 required). We have some installation manuals only on Russian language(English not ready yet) but I can help you via email. TODO: - per route and per gateway statistics to detect FAS. - disconnect rtp receiver and media processor threads to separated processes. Interaction with this processes via TCP/ZMQ/nanomsg protocol. - Move routing logic from stored procedures to separated processes. Interaction with this processes via TCP/ZMQ/nanomsg protocol. -- -- Regards, Dmitry Sinina _______________________________________________ Sems mailing list [email protected] http://lists.iptel.org/mailman/listinfo/sems
