(Still no not receiving the mail, revisited the settings.) OK, so SendText doesn't work with this scenario. But can MessageSend handle this, and respond even when the transport protocol is TLS? Or do I need to modify Asterisk to add this support?
BR, Emil ________________________________________ From: Emil Ohlsson Sent: Monday, September 28, 2015 2:16 PM To: Asterisk Users Mailing List - Non-Commercial Discussion Subject: Re: [asterisk-users] Respond to an out of call SIP MESSAGE Sorry for the delay here. For some reason the mail from Joshua Colp failed to deliver to my mailbox. So, anyway, I've set up a local scenario on my computer a PJSIP client and Asterisk 11.17.1 (On a fedora linux workstation) with the settings listed below. In this scenario I've used UDP, but I want a configuration that can be used with any transport protocol. I can see that the context runs correctly, but there is no message delivered to the client. Am I approaching this the wrong way? sip.conf: [general] context=public ; Default context for incoming calls. Defaults to 'default' allowoverlap=no ; Disable overlap dialing support. (Default is yes) realm=my_realm ; Realm for digest authentication udpbindaddr=0.0.0.0 ; IP address to bind UDP listen socket to (0.0.0.0 binds to all) tcpenable=no ; Enable server for incoming TCP connections (default is no) tcpbindaddr=0.0.0.0 ; IP address for TCP server to bind to (0.0.0.0 binds to all interfaces) transport=udp ; Set the default transports. The order determines the primary default transport. srvlookup=yes ; Enable DNS SRV lookups on outbound calls accept_outofcall_message = yes ; Disable this option to reject all MESSAGE requests outside of a outofcall_message_context = tutorial ; Context all out of dialog msgs are sent to. When this [authentication] [alice] type=friend host=dynamic username=alice secret=TopSecret nat=no transport=udp context=tutorial extensions.conf: [general] static=yes writeprotect=no clearglobalvars=no [tutorial] exten => _X!,1,NoOp(Got message) exten => _X!,n,Answer() exten => _X!,n,SendText(Zup dawg) exten => _X!,n,NoOp(Done with message) And when I run the scenario I get the following log: <--- SIP read from UDP:127.0.0.1:5059 ---> REGISTER sip:127.0.0.1:5060 SIP/2.0 Via: SIP/2.0/UDP 127.0.0.1:5059;rport;branch=z9hG4bKPjd629f029-a971-4c83-9920-bb02da26cc25 Max-Forwards: 70 From: <sip:[email protected]>;tag=4b251b50-2a30-498c-a7bd-9502271e8ac2 To: <sip:[email protected]> Call-ID: be616b5b-a301-477e-a4bc-c011bcecd4f0 CSeq: 17321 REGISTER Contact: <sip:[email protected]:5059;ob> Expires: 300 Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS Content-Length: 0 <-------------> --- (11 headers 0 lines) --- Sending to 127.0.0.1:5059 (no NAT) Sending to 127.0.0.1:5059 (no NAT) <--- Transmitting (no NAT) to 127.0.0.1:5059 ---> SIP/2.0 401 Unauthorized Via: SIP/2.0/UDP 127.0.0.1:5059;branch=z9hG4bKPjd629f029-a971-4c83-9920-bb02da26cc25;received=127.0.0.1;rport=5059 From: <sip:[email protected]>;tag=4b251b50-2a30-498c-a7bd-9502271e8ac2 To: <sip:[email protected]>;tag=as62d4da5c Call-ID: be616b5b-a301-477e-a4bc-c011bcecd4f0 CSeq: 17321 REGISTER Server: Asterisk PBX 11.17.1 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE Supported: replaces, timer WWW-Authenticate: Digest algorithm=MD5, realm="my_realm", nonce="394fd8d9" Content-Length: 0 <------------> Scheduling destruction of SIP dialog 'be616b5b-a301-477e-a4bc-c011bcecd4f0' in 32000 ms (Method: REGISTER) <--- SIP read from UDP:127.0.0.1:5059 ---> REGISTER sip:127.0.0.1:5060 SIP/2.0 Via: SIP/2.0/UDP 127.0.0.1:5059;rport;branch=z9hG4bKPj8905923d-2405-45dc-97c9-8abb213075c7 Max-Forwards: 70 From: <sip:[email protected]>;tag=4b251b50-2a30-498c-a7bd-9502271e8ac2 To: <sip:[email protected]> Call-ID: be616b5b-a301-477e-a4bc-c011bcecd4f0 CSeq: 17322 REGISTER Contact: <sip:[email protected]:5059;ob> Expires: 300 Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS Authorization: Digest username="alice", realm="my_realm", nonce="394fd8d9", uri="sip:127.0.0.1:5060", response="e72c84753c7768e0048c094d37ac6c70", algorithm=MD5 Content-Length: 0 <-------------> --- (12 headers 0 lines) --- Sending to 127.0.0.1:5059 (no NAT) <--- Transmitting (no NAT) to 127.0.0.1:5059 ---> SIP/2.0 200 OK Via: SIP/2.0/UDP 127.0.0.1:5059;branch=z9hG4bKPj8905923d-2405-45dc-97c9-8abb213075c7;received=127.0.0.1;rport=5059 From: <sip:[email protected]>;tag=4b251b50-2a30-498c-a7bd-9502271e8ac2 To: <sip:[email protected]>;tag=as62d4da5c Call-ID: be616b5b-a301-477e-a4bc-c011bcecd4f0 CSeq: 17322 REGISTER Server: Asterisk PBX 11.17.1 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE Supported: replaces, timer Expires: 300 Contact: <sip:[email protected]:5059;ob>;expires=300 Date: Mon, 28 Sep 2015 12:03:22 GMT Content-Length: 0 <------------> Scheduling destruction of SIP dialog 'be616b5b-a301-477e-a4bc-c011bcecd4f0' in 32000 ms (Method: REGISTER) <--- SIP read from UDP:127.0.0.1:5059 ---> MESSAGE sip:[email protected]:5060 SIP/2.0 Via: SIP/2.0/UDP 127.0.0.1:5059;rport;branch=z9hG4bKPjb2135f5d-b7ba-43e6-a1d9-1f2729b2f1b2 Max-Forwards: 70 From: <sip:[email protected]>;tag=c12f77aa-d0d5-4517-8430-bf4406006397 To: <sip:[email protected]> Call-ID: 1b6ac040-4af5-4015-a85d-fb5c48831d6f CSeq: 1266 MESSAGE Accept: text/plain, application/im-iscomposing+xml Content-Type: text/plain Content-Length: 13 Hello, world! <-------------> --- (10 headers 1 lines) --- Sending to 127.0.0.1:5059 (no NAT) Receiving message! Found peer 'alice' for 'alice' from 127.0.0.1:5059 <--- Transmitting (no NAT) to 127.0.0.1:5059 ---> SIP/2.0 401 Unauthorized Via: SIP/2.0/UDP 127.0.0.1:5059;branch=z9hG4bKPjb2135f5d-b7ba-43e6-a1d9-1f2729b2f1b2;received=127.0.0.1;rport=5059 From: <sip:[email protected]>;tag=c12f77aa-d0d5-4517-8430-bf4406006397 To: <sip:[email protected]>;tag=as32a0932b Call-ID: 1b6ac040-4af5-4015-a85d-fb5c48831d6f CSeq: 1266 MESSAGE Server: Asterisk PBX 11.17.1 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE Supported: replaces, timer WWW-Authenticate: Digest algorithm=MD5, realm="my_realm", nonce="0698f476" Content-Length: 0 <------------> Scheduling destruction of SIP dialog '1b6ac040-4af5-4015-a85d-fb5c48831d6f' in 32000 ms (Method: MESSAGE) Scheduling destruction of SIP dialog '1b6ac040-4af5-4015-a85d-fb5c48831d6f' in 32000 ms (Method: MESSAGE) <--- SIP read from UDP:127.0.0.1:5059 ---> MESSAGE sip:[email protected]:5060 SIP/2.0 Via: SIP/2.0/UDP 127.0.0.1:5059;rport;branch=z9hG4bKPj71f66ce8-9f0f-4841-aca8-ced79085ad65 Max-Forwards: 70 From: <sip:[email protected]>;tag=c12f77aa-d0d5-4517-8430-bf4406006397 To: <sip:[email protected]> Call-ID: 1b6ac040-4af5-4015-a85d-fb5c48831d6f CSeq: 1267 MESSAGE Accept: text/plain, application/im-iscomposing+xml Authorization: Digest username="alice", realm="my_realm", nonce="0698f476", uri="sip:[email protected]:5060", response="8d4ebff55b35d0363e4cd726c8f410c7", algorithm=MD5 Content-Type: text/plain Content-Length: 13 Hello, world! <-------------> --- (11 headers 1 lines) --- Receiving message! Found peer 'alice' for 'alice' from 127.0.0.1:5059 Looking for 1234 in tutorial (domain 127.0.0.1) <--- Transmitting (no NAT) to 127.0.0.1:5059 ---> SIP/2.0 202 Accepted Via: SIP/2.0/UDP 127.0.0.1:5059;branch=z9hG4bKPj71f66ce8-9f0f-4841-aca8-ced79085ad65;received=127.0.0.1;rport=5059 From: <sip:[email protected]>;tag=c12f77aa-d0d5-4517-8430-bf4406006397 To: <sip:[email protected]>;tag=as32a0932b Call-ID: 1b6ac040-4af5-4015-a85d-fb5c48831d6f CSeq: 1267 MESSAGE Server: Asterisk PBX 11.17.1 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE Supported: replaces, timer Content-Length: 0 <------------> Scheduling destruction of SIP dialog '1b6ac040-4af5-4015-a85d-fb5c48831d6f' in 32000 ms (Method: MESSAGE) -- Executing [1234@tutorial:1] NoOp("Message/ast_msg_queue", "Got message") in new stack -- Executing [1234@tutorial:2] Answer("Message/ast_msg_queue", "") in new stack -- Executing [1234@tutorial:3] SendText("Message/ast_msg_queue", "Zup dawg") in new stack -- Executing [1234@tutorial:4] NoOp("Message/ast_msg_queue", "Done with message") in new stack -- Auto fallthrough, channel 'Message/ast_msg_queue' status is 'UNKNOWN' BR, Emil ________________________________________ From: Emil Ohlsson Sent: Tuesday, September 22, 2015 8:53 AM To: Asterisk Users Mailing List - Non-Commercial Discussion Subject: Re: [asterisk-users] Respond to an out of call SIP MESSAGE Yes, that is how the problem was solved before when the transport protocol for messages was UDP, but TLS (TCP) this doesn't work. Partly because MessageSend doesn't support SIPS and partly because it focuses on sending a new message instead of reusing an existing stream. Using wireshark I can see that the TLS stream is still alive as there is no tear down communication. The "same,n," is a good shortcut to make the text more readable, I'll add that but I don't think that is the cause as I can follow the source code and see that the SendText command is executed but fails silently. Thanks for the feedback, Emil ________________________________________ From: Matthew Jordan <[email protected]> Sent: Monday, September 21, 2015 5:01 PM To: Asterisk Users Mailing List - Non-Commercial Discussion Cc: Emil Ohlsson Subject: Re: [asterisk-users] Respond to an out of call SIP MESSAGE On Mon, Sep 21, 2015 at 9:45 AM, D'Arcy J.M. Cain <[email protected]> wrote: > On Mon, 21 Sep 2015 06:48:52 +0000 > Emil Ohlsson <[email protected]> wrote: >> [sip-im] >> exten _X!, 1, NoOp(Got message) >> exten _X!, n, Answer() >> exten _X!, n, Agi(agi://localhost/messagehandler.agi?...) >> exten _X!, n, SendText(Message received) > > I am not an expert but perhaps you want this. > > [sip-im] > exten s,1,NoOp(Got message) > same,n,Answer() > same,n,Agi(agi://localhost/messagehandler.agi?...) > same,n,SendText(Message received) > > Replacing "exten _X!" with "same" is just a shortcut. I find that > there are lots of places where spaces cause problems so I just remove > them all for good measure. Finally, I am not sure what the mechanism > is here but if it is like a goto then I think that you want the 's' > priority. > > Or, I totally don't know what I am talking about and my education will > be advanced by the replies to this message. :-) > If you want to send an out of call SIP MESSAGE request, you'll need to use the MessageSend application: https://wiki.asterisk.org/wiki/display/AST/Asterisk+10+Application_MessageSend SendText is used for sending text messages within a call. Since a SIP channel is not servicing the out of call text message, you cannot use it to send a SIP MESSAGE request back to whatever sent the original SIP MESSAGE request. -- Matthew Jordan Digium, Inc. | Director of Technology 445 Jan Davis Drive NW - Huntsville, AL 35806 - USA Check us out at: http://digium.com & http://asterisk.org -- _____________________________________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- New to Asterisk? Join us for a live introductory webinar every Thurs: http://www.asterisk.org/hello asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
