Solved Direct SIP Calls - rings -> pickup phone -> no audio

Status
Not open for further replies.

Martinus Maximus

Joined
Feb 3, 2019
Messages
9
Reaction score
0
Hello All,

Installed the Enterprise edition of the 3CX phone system with yealink phones, soft phones on iOS and am now struggeling to setup the Direct SIP Calls on the system. Followed the articles to setup the SRV records in DNS, A-Records as fall back in case domain name resolution with service records aint working. Now that all is configured and the alliases are updated in the extensions i started to initiate a call using star leaf to test.

Phone rings, i see in the logs that the session is established, pick up the phone and no audio - other side thinks the phone is not engaged and still provides a ring tone like it is still calling.

Started testing first with freephonebox (https://sip5060.net/test-calls/):

Code:
02/03/2019 5:15:09 PM - [CM503021]: Call(C:1): ACK is not received from sip:[email protected]
02/03/2019 5:14:38 PM - [CM101008]: The '' feature is disabled in currently activated licenseCall recording
02/03/2019 5:14:38 PM - [CM503003]: Call(C:1): Call to <sip:[email protected]:5060> has failed; Cause: 487 Request Terminated/INVITE from 127.0.0.1:5483


so initial thinking was that these freeware sites were dodgy and moved to starleaf and bumped up the logging:


Code:
02/03/2019 5:31:15 PM - [CM503008]: Call(C:9): Call is terminated
02/03/2019 5:31:15 PM - Leg L:9.2[Extn:00001] is terminated: Cause: BYE from 192.168.1.86:5060
02/03/2019 5:31:14 PM - [CM504002]: Endpoint Extn:00001: a contact is unregistered. Contact(s): [sip:[email protected]:5060 / 00001,sip:[email protected]:5483 / 00001]
02/03/2019 5:31:14 PM - Settings of Extn:00001 has been updated
02/03/2019 5:31:13 PM - [CM504001]: Endpoint Extn:00001: new contact is registered. Contact(s): [sip:[email protected]:50163 / 00001,sip:[email protected]:5060 / 00001,sip:[email protected]:5483 / 00001]
02/03/2019 5:31:13 PM - Settings of Extn:00001 has been updated
02/03/2019 5:31:11 PM - [CM101008]: The '' feature is disabled in currently activated licenseCall recording
02/03/2019 5:31:10 PM - Leg L:9.3[Extn:00001] is terminated: Cause: 487 Request Terminated/INVITE from 127.0.0.1:5483
02/03/2019 5:31:10 PM - [CM503003]: Call(C:9): Call to <sip:[email protected]:5060> has failed; Cause: 487 Request Terminated/INVITE from 127.0.0.1:5483
02/03/2019 5:31:10 PM - [CM503007]: Call(C:9): Extn:00001 has joined, contact <sip:[email protected]:5060>
02/03/2019 5:31:10 PM - L:9.2[Extn:00001] has joined to L:9.1[DirSip:DirectSIP<<"Martin Meuwese" <sip:[email protected]>;tag=3c9df7f0367d6ab3]
02/03/2019 5:31:09 PM - Currently active calls - 1: [9]
02/03/2019 5:31:09 PM - [CM505001]: Endpoint Extn:00001: Device info: Device Not Identified: User Agent not matched; Capabilities:[reinvite, replaces, able-no-sdp, recvonly] UserAgent: [3CX Mobile Client] PBX contact: [sip:[email protected]:5060]
02/03/2019 5:31:09 PM - [CM503002]: Call(C:9): Alerting Extn:00001 by contact <sip:[email protected]:5483>
02/03/2019 5:31:09 PM - [CM505001]: Endpoint Extn:00001: Device info: Device Not Identified: User Agent not matched; Capabilities:[reinvite, replaces, able-no-sdp, recvonly] UserAgent: [Yealink SIP-T58 58.80.188.3 805ec0066dae] PBX contact: [sip:[email protected]:5060]
02/03/2019 5:31:09 PM - [CM503002]: Call(C:9): Alerting Extn:00001 by contact <sip:[email protected]:5060>
02/03/2019 5:31:09 PM - [CM503025]: Call(C:9): Calling T:Extn:00001@[Dev:sip:[email protected]:5060,Dev:sip:[email protected]:5483;rinstance=1bce5f36b3732dbf] for L:9.1[DirSip:DirectSIP<<"Martin Meuwese" <sip:[email protected]>;tag=3c9df7f0367d6ab3]
02/03/2019 5:31:09 PM - [CM503025]: Call(C:9): Calling T:Extn:00001@[Dev:sip:[email protected]:5060,Dev:sip:[email protected]:5483;rinstance=1bce5f36b3732dbf] for L:9.1[DirSip:DirectSIP<<"Martin Meuwese" <sip:[email protected]>;tag=3c9df7f0367d6ab3]
02/03/2019 5:31:09 PM - [CM503027]: Call(C:9): From: DirSip:DirectSIP<<"Martin Meuwese" <sip:[email protected]>;tag=3c9df7f0367d6ab3 ("Martin Meuwese" <sip:[email protected]:5060>) to T:Extn:00001@[Dev:sip:[email protected]:5060,Dev:sip:[email protected]:5483;rinstance=1bce5f36b3732dbf]
02/03/2019 5:31:09 PM - [CM503004]: Call(C:9): Route 1: from L:9.1[DirSip:DirectSIP<<"Martin Meuwese" <sip:[email protected]>;tag=3c9df7f0367d6ab3] to T:Extn:00001@[Dev:sip:[email protected]:5060,Dev:sip:[email protected]:5483;rinstance=1bce5f36b3732dbf]
02/03/2019 5:31:09 PM - [Flow] Call(C:9): has built target endpoint: Extn:00001 for call from L:9.1[DirSip:DirectSIP<<"Martin Meuwese" <sip:[email protected]>;tag=3c9df7f0367d6ab3]
02/03/2019 5:31:09 PM - [Flow] Target endpoint for m.meuwese is Extn:00001
02/03/2019 5:31:09 PM - [CM503010]: Call(C:9): Making route(s) from DirSip:DirectSIP<<"Martin Meuwese" <sip:[email protected]>;tag=3c9df7f0367d6ab3 to <sip:[email protected]:5060>
02/03/2019 5:31:09 PM - [CM505001]: Endpoint DirSip:m.meuwese: Device info: Device Not Identified: User Agent not matched; Capabilities:[reinvite, replaces, able-no-sdp, recvonly] UserAgent: [StarLeaf/5.9.1rc2] PBX contact: [sip:[email protected]:5060;transport=TCP]
02/03/2019 5:31:09 PM - [CM500002]: Call(C:9): Info on incoming INVITE from DirSip:DirectSIP<<"Martin Meuwese" <sip:[email protected]>;tag=3c9df7f0367d6ab3: Invite-IN Recv Req INVITE from 89.202.39.73:46653 tid=1b937e8d9324d351 Call-ID=SLP150136A-5c57-174d-780d-b25a-b25e: INVITE sip:[email protected] SIP/2.0 Via: SIP/2.0/TCP 89.202.39.73;branch=z9hG4bK1b937e8d9324d351;rport=46653 Max-Forwards: 70 Contact: <sip:[email protected];transport=tcp> To: "[email protected]" <sip:[email protected]> From: "Martin Meuwese" <sip:[email protected]>;tag=3c9df7f0367d6ab3 Call-ID: SLP150136A-5c57-174d-780d-b25a-b25e CSeq: 1631946685 INVITE Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, INFO User-Agent: StarLeaf/5.9.1rc2 Content-Length: 0
02/03/2019 5:31:09 PM - [CM503001]: Call(C:9): Incoming call from DirSip:DirectSIP<<"Martin Meuwese" <sip:[email protected]>;tag=3c9df7f0367d6ab3 to "[email protected]" <sip:[email protected]:5060>


Currently i'm at a total loss where this issue might be coming from. Started the verbose logging though that didn't help either.

Who has an idea?

Regards,

Martin Meuwese
 
Are you attempting to record the calls? The log error would seem to indicate that there is a problem relating to that. Assuming that all of the required audio ports are open (forwarded), it may be a Codec issue.
 
Are you attempting to record the calls? The log error would seem to indicate that there is a problem relating to that. Assuming that all of the required audio ports are open (forwarded), it may be a Codec issue.
Yes, though saw the issue as well and disabled recording while testing further. No change. The same issue.

Codec I expected as well and at some point added all of them. Also no difference.
 
You didn't answer the question regarding the ports. Firewall checker comes back clean?
 
You didn't answer the question regarding the ports. Firewall checker comes back clean?

Off course. Otherwise I wouldn’t dare open a ticket here :). Checked it twice just to make sure.

Tomorrow I will post the screenshot showing all green.

98DB74C8-BC38-494F-920A-C92F2FA1AB6A.png
 
Last edited:
Phone rings, i see in the logs that the session is established, pick up the phone and no audio - other side thinks the phone is not engaged and still provides a ring tone like it is still calling.

If this is still happening, then there is no SIP message sent, letting the calling party know that the call was answered, so no audio established. Does this happen with multiple extensions? Does this happen with different types of devices (sets) being called? Have you tried establishing a Direct SIP call with any other method, other than what you have been doing?
 
Ok well if the firewall check passes then I'd wireshark. Basically SIP messages aren't making it out correctly for whatever reason. Unless trunk configurations you don't really have any control over the direct SIP stuff so that might be tricky. Frankly I don't remember if I've ever tried direct SIP on 3CX so I'll have to play with that.
 
If this is still happening, then there is no SIP message sent, letting the calling party know that the call was answered, so no audio established. Does this happen with multiple extensions? Does this happen with different types of devices (sets) being called? Have you tried establishing a Direct SIP call with any other method, other than what you have been doing?

Test protocol is as following:

Use a laptop connected to the internet (3/4G) and connect to: https://sip5060.net/test-calls/ and starleaf software client. Both are used to create inbound test calls.
(This step is to ensure that there is no internal communication issues and name resolved problems etc.)

Target:

Ensure to configure 2 end-points with the correct SIP ID (unique one); goto Extensions->Select the extension->Options->SIP ID (on the bottom). Both SIP ID's should have a phone associated and a softphone for testing (in my case iOS and Yealink).

Softphone can be tested using the internal network and 3/4G connectivity.

Test process:

SIP5060 time test
- Call the SIP ID and pickup the phone; Record the result (for each ID)
- Call the SIP ID and pickup the softphone; Record the result (For each ID)
Connect to softphone to 3/4G and not the internal lan
- Call the SIP ID and pickup the softphone; Record the result (For each ID)
- Test the SIP ID and wait for it to go to voicemail

Same issue in each scenario; 32 Seconds the link remains open before it gets dropped. No audio. Starleaf detects a connection as it shows the connection timer.
Voicemail pickups as well as the call timer starts to run on the starleaf client. No audio.
The Sip5060 site is always giving a ring tone and don't connect after the pickup. So there seems to be different behavior from Starleaf and Sip506.

I will see if i can perform a remote capture and post the results.
 
Ok well if the firewall check passes then I'd wireshark. Basically SIP messages aren't making it out correctly for whatever reason. Unless trunk configurations you don't really have any control over the direct SIP stuff so that might be tricky. Frankly I don't remember if I've ever tried direct SIP on 3CX so I'll have to play with that.

Attached the capture that was made running the test:

Starleaf remote (not on the internal network) -> iOS softphone 3/4G network; Connection time 32 seconds, no audio.

(Edited by admin)
 
It seems there is something not 100% correct; It looks like starleaf is sending data to the media port. See the capture made on the outside firewall. (Cisco ASA).

Next step is capturing the firewall and 3CX at the same time.

By the way; Windows firewall is OFF....

(Edited by admin)
 
Full set of captures; 3CX and Firewall.


(Edited by admin)
 
Last edited by a moderator:
Please be very careful on what you post on public forums. Wireshark captures contain a lot of information someone may take advantage off.
Having said that your issue is caused from the lack of SDP from the initiator of the Invite.

As you can see from the screenshot below the Invite comes in but there is no SDP (codecs, Port or IP for media). The phone replies with 200 OK with all necessary information but the ACK message that should contain all the necessary information never arrives. So naturally there is no audio and the call fails.

2019-02-05_12h53_49.png

It is exactly the same picture from your firewall so the reply never reaches your firewall.
 
I noticed the same. So both test candidates are not fit for purpose or something is being blocked by my provider? Does anyone have notices messages being blocked by providers?

In the meantime i opened a support ticket with Starleaf; Lets see what they have to say.
 
Last edited:
Please be very careful on what you post on public forums. Wireshark captures contain a lot of information someone may take advantage off.
Having said that your issue is caused from the lack of SDP from the initiator of the Invite.

As you can see from the screenshot below the Invite comes in but there is no SDP (codecs, Port or IP for media). The phone replies with 200 OK with all necessary information but the ACK message that should contain all the necessary information never arrives. So naturally there is no audio and the call fails.

View attachment 9486

It is exactly the same picture from your firewall so the reply never reaches your firewall.
====

Problem is identified; The Policy-map on the Cisco ASA did not include the SIP inspection (FIXUP). As a trial and error approach i added this and solved the problem.

Configuration snipped of the setting applied on the firewall:

Internal IP: 1.2.3.4

object network pbx_https
host 1.2.3.4
object network pbx_http
host 1.2.3.4
object network pbx_sip
host 1.2.3.4
object network pbx_tunnel
host 1.2.3.4
object network media_server
host 1.2.3.4
object service media_server-Range
service udp destination range 9000 10999
object network pbx_sip_udp
host 1.2.3.4
object network pbx_tunnel_udp
host 1.2.3.4

access-list inbound remark ================== START PBX Configuration ==================
access-list inbound extended permit udp any object media_server range 9000 10999
access-list inbound extended permit udp any object pbx_tunnel eq 5090
access-list inbound extended permit tcp any object pbx_tunnel eq 5090
access-list inbound extended permit udp any object pbx_sip eq sip
access-list inbound extended permit tcp any object pbx_sip eq sip
access-list inbound extended permit tcp any object pbx_http eq 5000
access-list inbound extended permit tcp any object pbx_https eq 5001
access-list inbound remark ================== END PBX Configuration ==================

####Used for the port range NAT translation from outside to inside####
nat (outside,inside) source static any any destination static interface media_server service media_server-Range media_server-Range

object network pbx_https
nat (inside,ZiggoRouted) static interface service tcp 5001 5001
object network pbx_http
nat (inside,ZiggoRouted) static interface service tcp 5000 5000
object network pbx_sip
nat (inside,ZiggoRouted) static interface service tcp sip sip
object network pbx_tunnel
nat (inside,ZiggoRouted) static interface service tcp 5090 5090
object network pbx_sip_udp
nat (inside,ZiggoRouted) static interface service udp sip sip
object network pbx_tunnel_udp
nat (inside,ZiggoRouted) static interface service udp 5090 5090

policy-map global_policy
class inspection_default
inspect sip

===

Some improvements can be made here by splitting the media_server-Range into a range1 and 2 though i took the lazy approach and opened all. The outside interface is used as the IP address for the inbound connections.

Screen%20Shot%202019-02-05%20at%2012.40.32.png
 
Last edited:
Glad to see the issue has been resolved and thank you for updating the thread with your solution.
 
Status
Not open for further replies.

Forum statistics

Threads
111,913
Messages
589,707
Members
164,783
Latest member
GothamUser