Re: [asterisk-users] IPv6 transport results in ICE with only IPv6 candidates

2019-04-17 Thread Brian J. Murrell
On Wed, 2019-04-17 at 13:50 -0400, Joshua C. Colp wrote:
> 
> The same escaping should apply there for extensions.conf as it's a
> config file thing, I don't use AEL and don't know anything in that
> regard. It may work the same way there.

How very odd.  It is working now.  I am sure I did nothing different
than the first time.

Cheers,
b.



signature.asc
Description: This is a digitally signed message part
-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

Check out the new Asterisk community forum at: https://community.asterisk.org/

New to Asterisk? Start here:
  https://wiki.asterisk.org/wiki/display/AST/Getting+Started

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-users

Re: [asterisk-users] IPv6 transport results in ICE with only IPv6 candidates

2019-04-17 Thread Joshua C. Colp
On Wed, Apr 17, 2019, at 2:06 PM, Brian J. Murrell wrote:
> On Wed, 2019-04-17 at 11:56 -0400, Joshua C. Colp wrote:
> > On Wed, Apr 17, 2019, at 12:51 PM, Brian J. Murrell wrote:
> > > 
> > > I can add it onto the end of the variable in the Dial() command:
> > > 
> > > Dial(${FRED};transport=tcp,${timeout},TtWw);
> 
> [ the part you trimmed ]:
> 
> and it has the desired effect, but of course specifying at the point
> where the Dial command is sets the transport policy much too broadly.
> 
> > You escape the ; character by placing \ in front of it. IE:
> > 
> > DIal(${FRIED}\;transport=tcp,${timeout},TtWw);
> 
> So per the above ("has the desired effect") one doesn't even have to
> escape the ; in the Dial() command.
> 
> But I don't want the ";transport=tcp" hard-coded into the Dial()
> command argument where the Dial() command is executed. That is making
> a transport policy (i.e. not every destination that gets to that Dial()
> command should use tcp) decision for far too many destinations.
> 
> The ";transport=tcp" needs to be added where the destination is defined
> into a variable:
> 
> FRED=PJSIP/outgoing/sip:f...@sip.example.com;transport=tcp
> 
> in extensions.conf or:
> 
> FRED="PJSIP/outgoing/sip:f...@sip.example.com;transport=tcp";
> 
> in extensions.ael.

The same escaping should apply there for extensions.conf as it's a config file 
thing, I don't use AEL and don't know anything in that regard. It may work the 
same way there.

-- 
Joshua C. Colp
Digium - A Sangoma Company | Senior Software Developer
445 Jan Davis Drive NW - Huntsville, AL 35806 - US
Check us out at: www.digium.com & www.asterisk.org

-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

Check out the new Asterisk community forum at: https://community.asterisk.org/

New to Asterisk? Start here:
  https://wiki.asterisk.org/wiki/display/AST/Getting+Started

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-users

Re: [asterisk-users] IPv6 transport results in ICE with only IPv6 candidates

2019-04-17 Thread Brian J. Murrell
On Wed, 2019-04-17 at 11:56 -0400, Joshua C. Colp wrote:
> On Wed, Apr 17, 2019, at 12:51 PM, Brian J. Murrell wrote:
> > 
> > I can add it onto the end of the variable in the Dial() command:
> > 
> > Dial(${FRED};transport=tcp,${timeout},TtWw);

[ the part you trimmed ]:

and it has the desired effect, but of course specifying at the point
where the Dial command is sets the transport policy much too broadly.

> You escape the ; character by placing \ in front of it. IE:
> 
> DIal(${FRIED}\;transport=tcp,${timeout},TtWw);

So per the above ("has the desired effect") one doesn't even have to
escape the ; in the Dial() command.

But I don't want the ";transport=tcp" hard-coded into the Dial()
command argument where the Dial() command is executed.  That is making
a transport policy (i.e. not every destination that gets to that Dial()
command should use tcp) decision for far too many destinations.

The ";transport=tcp" needs to be added where the destination is defined
into a variable:

FRED=PJSIP/outgoing/sip:f...@sip.example.com;transport=tcp

in extensions.conf or:

FRED="PJSIP/outgoing/sip:f...@sip.example.com;transport=tcp";

in extensions.ael.

Cheers,
b.



signature.asc
Description: This is a digitally signed message part
-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

Check out the new Asterisk community forum at: https://community.asterisk.org/

New to Asterisk? Start here:
  https://wiki.asterisk.org/wiki/display/AST/Getting+Started

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-users

Re: [asterisk-users] IPv6 transport results in ICE with only IPv6 candidates

2019-04-17 Thread Joshua C. Colp
On Wed, Apr 17, 2019, at 12:51 PM, Brian J. Murrell wrote:
> On Wed, 2019-04-17 at 10:04 -0400, Joshua C. Colp wrote:
> > 
> > You specify the transport in the SIP URI. For example:
> > 
> > sip:t...@example.com;transport=tcp
> 
> Hrm. This is probably going to be pretty basic, but some googling
> didn't seem to come up with anything. How do you do this when you are
> assigning to a variable in extensions.conf such as:
> 
> FRED=PJSIP/outgoing/sip:f...@sip.example.com;transport=tcp
> 
> The ; is taken as a comment starting character, isn't it?
> 
> Even in AEL:
> 
> FRED="PJSIP/outgoing/sip:f...@sip.example.com;transport=tcp";
> 
> The ;transport=tcp doesn't seem to survive.
> 
> I can add it onto the end of the variable in the Dial() command:
> 
> Dial(${FRED};transport=tcp,${timeout},TtWw);

You escape the ; character by placing \ in front of it. IE:

DIal(${FRIED}\;transport=tcp,${timeout},TtWw);

-- 
Joshua C. Colp
Digium - A Sangoma Company | Senior Software Developer
445 Jan Davis Drive NW - Huntsville, AL 35806 - US
Check us out at: www.digium.com & www.asterisk.org

-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

Check out the new Asterisk community forum at: https://community.asterisk.org/

New to Asterisk? Start here:
  https://wiki.asterisk.org/wiki/display/AST/Getting+Started

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-users

Re: [asterisk-users] IPv6 transport results in ICE with only IPv6 candidates

2019-04-17 Thread Brian J. Murrell
On Wed, 2019-04-17 at 10:04 -0400, Joshua C. Colp wrote:
> 
> You specify the transport in the SIP URI. For example:
> 
> sip:t...@example.com;transport=tcp

Hrm.  This is probably going to be pretty basic, but some googling
didn't seem to come up with anything.  How do you do this when you are
assigning to a variable in extensions.conf such as:

FRED=PJSIP/outgoing/sip:f...@sip.example.com;transport=tcp

The ; is taken as a comment starting character, isn't it?

Even in AEL:

FRED="PJSIP/outgoing/sip:f...@sip.example.com;transport=tcp";

The ;transport=tcp doesn't seem to survive.

I can add it onto the end of the variable in the Dial() command:

Dial(${FRED};transport=tcp,${timeout},TtWw);

and it has the desired effect, but of course specifying at the point
where the Dial command is sets the transport policy much too broadly.

Cheers,
b.



signature.asc
Description: This is a digitally signed message part
-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

Check out the new Asterisk community forum at: https://community.asterisk.org/

New to Asterisk? Start here:
  https://wiki.asterisk.org/wiki/display/AST/Getting+Started

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-users

Re: [asterisk-users] IPv6 transport results in ICE with only IPv6 candidates

2019-04-17 Thread Joshua C. Colp
On Wed, Apr 17, 2019, at 10:54 AM, Brian J. Murrell wrote:



> Presumably the problem with the [outgoing] endpoint is the
> specification of an IPv6-TCP transport. But I need to force the use of
> TCP, so how can I do that without limiting it to a particular IP
> protocol?

You specify the transport in the SIP URI. For example:

sip:t...@example.com;transport=tcp

This will limit to TCP, and depending on the resolution of "example.com" use 
IPv6 or IPv4. The ICE candidates should then be both IPv6 and IPv4 since a 
transport is not explicitly specified.

-- 
Joshua C. Colp
Digium - A Sangoma Company | Senior Software Developer
445 Jan Davis Drive NW - Huntsville, AL 35806 - US
Check us out at: www.digium.com & www.asterisk.org

-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

Check out the new Asterisk community forum at: https://community.asterisk.org/

New to Asterisk? Start here:
  https://wiki.asterisk.org/wiki/display/AST/Getting+Started

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-users

[asterisk-users] IPv6 transport results in ICE with only IPv6 candidates

2019-04-17 Thread Brian J. Murrell
Hi,

I'm using Asterisk 13.x and have defined a pjsip TCP IPv6 transport:

[transport-tcp-ipv6]
type=transport
protocol=tcp
bind=[2001:1234:5678:abcd::2]:5060

I also have an IPv4 version of that:

[transport-tcp-ipv4]
type=transport
protocol=tcp
bind=10.75.22.8:5060

I've then configured an endpoint to use it:

[outgoing]
type = endpoint
context = default
dtmf_mode = none
disallow = all
allow = all
rtp_symmetric = yes
force_rport = yes
rewrite_contact = yes
direct_media = no
language = en
aors = outgoing
t38_udptl = yes
t38_udptl_ec = none
ice_support=yes
transport=transport-tcp-ipv6

But this seems to result in SDP payloads with ICE not offering any IPv4
candidates:

v=0
o=- 508048280 508048280 IN IP6 2001:1234:5678:abcd::2
s=Asterisk
c=IN IP6 2001:1234:5678:abcd::2
t=0 0
m=audio 14384 RTP/AVP 4 0 8 3 111 112 5 10 118 7 18 110 117 119 97 9 102 115 
116 107
a=ice-ufrag:6eea7b135aa990d714a67931034ac864
a=ice-pwd:0494fccd28b93f8a2b544b4741203e4f
a=candidate:H67c355d6 1 UDP 2130706431 fd31:aeb1:48df::2 14384 typ host
a=candidate:Hc1e19c54 1 UDP 2130706431 2607:abcd:9876:5432::247 14384 typ host
a=candidate:Hf5a91683 1 UDP 2130706431 2001:1234:5678:abcd::2 14384 typ host
a=candidate:Hdccea0f2 1 UDP 2130706431 2001:123:ab:123::2 14384 typ host
a=candidate:Hcbb5ed22 1 UDP 2130706431 fe80::21f:c6ff:fec4:926a 14384 typ host
a=candidate:H67c355d6 2 UDP 2130706430 fd31:aeb1:48df::2 14385 typ host
a=candidate:Hc1e19c54 2 UDP 2130706430 2607:abcd:9876:5432::247 14385 typ host
a=candidate:Hf5a91683 2 UDP 2130706430 2001:1234:5678:abcd::2 14385 typ host
a=candidate:Hdccea0f2 2 UDP 2130706430 2001:123:ab:123::2 14385 typ host
a=candidate:Hcbb5ed22 2 UDP 2130706430 fe80::21f:c6ff:fec4:926a 14385 typ host
a=rtpmap:4 G723/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:3 GSM/8000
a=rtpmap:111 G726-32/8000
a=rtpmap:112 AAL2-G726-32/8000
a=rtpmap:5 DVI4/8000
a=rtpmap:10 L16/8000
a=rtpmap:118 L16/16000
a=rtpmap:7 LPC/8000
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
a=rtpmap:110 speex/8000
a=rtpmap:117 speex/16000
a=rtpmap:119 speex/32000
a=rtpmap:97 iLBC/8000
a=rtpmap:9 G722/8000
a=rtpmap:102 G7221/16000
a=fmtp:102 bitrate=32000
a=rtpmap:115 G7221/32000
a=fmtp:115 bitrate=48000
a=rtpmap:116 G719/48000
a=rtpmap:107 opus/48000/2
a=ptime:20
a=maxptime:20
a=sendrecv
m=video 11188 RTP/AVP 31 34 103 99 104 100 108
a=ice-ufrag:28e29ae16a4cc8d54ebf03cf56010f1a
a=ice-pwd:57ec01cf24ac689d2fb459bd0411d2b6
a=candidate:H67c355d6 1 UDP 2130706431 fd31:aeb1:48df::2 11188 typ host
a=candidate:Hc1e19c54 1 UDP 2130706431 2607:abcd:9876:5432::247 11188 typ host
a=candidate:Hf5a91683 1 UDP 2130706431 2001:1234:5678:abcd::2 11188 typ host
a=candidate:Hdccea0f2 1 UDP 2130706431 2001:123:ab:123::2 11188 typ host
a=candidate:Hcbb5ed22 1 UDP 2130706431 fe80::21f:c6ff:fec4:926a 11188 typ host
a=candidate:H67c355d6 2 UDP 2130706430 fd31:aeb1:48df::2 11189 typ host
a=candidate:Hc1e19c54 2 UDP 2130706430 2607:abcd:9876:5432::247 11189 typ host
a=candidate:Hf5a91683 2 UDP 2130706430 2001:1234:5678:abcd::2 11189 typ host
a=candidate:Hdccea0f2 2 UDP 2130706430 2001:123:ab:123::2 11189 typ host
a=candidate:Hcbb5ed22 2 UDP 2130706430 fe80::21f:c6ff:fec4:926a 11189 typ host
a=rtpmap:31 H261/9
a=rtpmap:34 H263/9
a=rtpmap:103 h263-1998/9
a=rtpmap:99 H264/9
a=rtpmap:104 MP4V-ES/9
a=rtpmap:100 VP8/9
a=rtpmap:108 VP9/9
a=sendrecv

But other endpoints where I don't specify a transport, I get both IPv4
and IPv6 candidates in the ICE SDP.

Presumably the problem with the [outgoing] endpoint is the
specification of an IPv6-TCP transport.  But I need to force the use of
TCP, so how can I do that without limiting it to a particular IP
protocol?

I can't seem to define a generic TCP transport:

[transport-tcp]
type=transport
protocol=tcp

in addition to the ones I have already defined above but I do need to
define the IPv4 and IPv6 transports as I need to bind them to specific
addresses.

Any ideas?

Cheers,
b.



signature.asc
Description: This is a digitally signed message part
-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

Check out the new Asterisk community forum at: https://community.asterisk.org/

New to Asterisk? Start here:
  https://wiki.asterisk.org/wiki/display/AST/Getting+Started

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-users