Having a bit of an issue trying to capture RTCP. Current setup is homer-docker for the capture server.
The client is an Asterisk machine, making a call between a Zoiper softphone. I'm using the 6.1 branch of captagent (happy to test against master or otherwise, figured I saw you guys talking about merging that branch to master). I've confirmed that RTCP is being sent between the 2 SIP UA's, e.g. this wireshark screencap. And also took a pcap at the Homer capture server and it doesn't look like there's any RTCP info coming over (that is, just eyeballing it, I can see the ASCII for the SIP messages, but nothing else)
I ran into the same issue as reported in #55 where RTCP wasn't enabled due to database_hash
module not being loaded or being loaded in the improper order. However, once I got there I ran into the same issue was the user in question.
When running captagent, the output I have is:
[root@asterisk1ri3int captagent]# captagent -n -f /etc/captagent/captagent.xml
[NOTICE] Loaded core config
[ERR] protocol_sip.c:124 Couldnot find this call
[ERR] protocol_sip.c:124 Couldnot find this call
[ERR] protocol_sip.c:124 Couldnot find this call
I can find the line that's producing that output in the capture-plan for RTCP at this line.
I tried removing that if
statement in the capture plan, and it winds up erroring on the next if statement with the couldn't parse RTCP to json
in the captagent output.
I figured you guys might know exactly what's going on -- but in terms of contributing, one thing I might be able to do is setup the Travis CI tests to run the application, as well as run some SIP UA's and have it perform a capture.
My configuration is as follows, mostly it's default except I've been keeping my configs in /etc/
and then just changes as noted in these two issues #55 and #53 -- plus of course my IPs / creds in transport_hep.xml
. Let me know if I'm missing any files in my config you'd like to see.
captagent.xml
<?xml version="1.0"?>
<document type="captagent/xml">
<configuration name="core.conf" description="CORE Settings" serial="2014024212">
<settings>
<param name="debug" value="3"/>
<param name="version" value="2"/>
<param name="serial" value="2014056501"/>
<param name="uuid" value="00781a4a-5b69-11e4-9522-bb79a8fcf0f3"/>
<param name="daemon" value="false"/>
<param name="syslog" value="false"/>
<param name="pid_file" value="/var/run/captagent.pid"/>
<!-- Configure using installation path if different from default -->
<param name="module_path" value="/usr/local/lib/captagent/modules"/>
<param name="config_path" value="/etc/captagent"/>
<param name="capture_plans_path" value="/etc/captagent/captureplans"/>
<param name="backup" value="/etc/captagent/backup"/>
<param name="chroot" value="/var/lib/captagent"/>
</settings>
</configuration>
<configuration name="modules.conf" description="Modules">
<modules>
<load module="transport_hep" register="local"/>
<load module="protocol_sip" register="local"/>
<load module="protocol_rtcp" register="local"/>
<load module="socket_rtcpxr" register="local"/>
<load module="database_hash" register="local"/>
<load module="socket_pcap" register="local"/>
<load module="socket_raw" register="local"/>
<!--
<load module="transport_json" register="local"/>
<load module="interface_http" register="local"/>
<load module="database_redis" register="local"/>
<load module="socket_pfring" register="local"/>
-->
</modules>
</configuration>
</document>
socket_pcap.xml
<?xml version="1.0"?>
<document type="captagent_module/xml">
<module name="socket_pcap" description="HEP Socket" serial="2014010402">
<profile name="socketspcap_sip" description="HEP Socket" enable="true" serial="2014010402">
<settings>
<param name="dev" value="eth0"/>
<param name="promisc" value="true"/>
<param name="reasm" value="false"/>
<param name="capture-plan" value="sip_capture_plan.cfg"/>
<param name="filter">
<value>portrange 5060-5091</value>
</param>
</settings>
</profile>
<profile name="socketspcap_rtcp" description="RTCP Socket" enable="true" serial="2014010402">
<settings>
<param name="dev" value="eth0"/>
<param name="promisc" value="true"/>
<param name="reasm" value="false"/>
<!-- size in MB -->
<param name="ring-buffer" value="20"/>
<!-- for rtp && rtcp < 250 -->
<param name="snap-len" value="256"/>
<param name="capture-filter" value="rtcp"/>
<param name="capture-plan" value="rtcp_capture_plan.cfg"/>
<param name="filter">
<value>portrange 5060-50000</value>
</param>
</settings>
</profile>
</module>
</document>
protocol_rtcp.xml
<?xml version="1.0"?>
<document type="captagent_module/xml">
<module name="protocol_rtcp" description="RTCP Protocol" serial="2014010402">
<profile name="proto_rtcp" description="PROTO RTCP" enable="true" serial="2014010402">
<settings>
<param name="rtcp-version" value="2"/>
</settings>
</profile>
</module>
</document>
protocol_sip.xml
<?xml version="1.0"?>
<document type="captagent_module/xml">
<module name="protocol_sip" description="SIP Protocol" serial="2014010402">
<profile name="proto_sip" description="PROTO SIP" enable="true" serial="2014010402">
<settings>
<param name="dialog-type" value="2"/>
<param name="dialog-timeout" value="180"/>
</settings>
</profile>
</module>
</document>
transport_hep.xml
<?xml version="1.0"?>
<document type="captagent_module/xml">
<module name="transport_hep" description="HEP Protocol" serial="2014010402">
<profile name="hepsocket" description="Transport HEP" enable="true" serial="2014010402">
<settings>
<param name="version" value="3"/>
<param name="capture-host" value="192.168.122.133"/>
<param name="capture-port" value="9060"/>
<param name="capture-proto" value="udp"/>
<param name="capture-id" value="2001"/>
<param name="capture-password" value="myHep"/>
<param name="payload-compression" value="false"/>
</settings>
</profile>
</module>
</document>