[Sip-implementors] SDP in 200 to UPDATE without SDP

2011-12-06 Thread Stefan Sayer
Hello,

I am wondering what to do with an SDP in a 200 to an UPDATE without 
SDP in an established dialog, for example as a response to a session 
refresh triggered by SST. There is two cases:
  - the SDP has not changed (to what is established)
  - the SDP has changed

I can't find any text neither in RFC 3311 nor in 3264 which would 
explicitely prohibit placing an SDP in such a 200 reply. In  RFC 6337 
Table 1, though, the only pattern of offer/answer involving UPDATE is 
the one with offer in the UPDATE, and answer in the 2xx.

Or is such an SDP considered a "Session Description That Is Not an 
Offer or an Answer" (2.4 in 6337) and thus should just be considered 
informational? What if the SDP is different to the established session?

Thanks for any hints!
Stefan
___
Sip-implementors mailing list
Sip-implementors@lists.cs.columbia.edu
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors


Re: [Sip-implementors] Retransmitted NOTIFY overlaps with the next one - what is the correct behavior?

2011-11-24 Thread Stefan Sayer
Hello,

many thanks for the explanations!

o Adam Roach on 11/24/2011 06:25 AM:
>
> On 11/23/11 23:08, Nov 23, Paul Kyzivat wrote:
>> Lets ask Adam to comment on this.
>>
>> Adam?
>
> Yeah, I saw this on the resip list but didn't have time to dig into
> it. My recollection is that you're not supposed to send a NOTIFY on a
> dialog while another NOTIFY is still pending on the same dialog. I
> distinctly recall having discussions around this point in the
> 1999-2000 timeframe, and I think we elected not to prohibit it
> (although I don't remember why). It's water under the bridge at this
> point.
>
>
> ...
>>> so I don't understand how in RFC 5057, section 5.1, 500 (or unknown
>>> 5xx)
>>> show up in "Transaction Only" and not in "Destroys Usage" - what am I
>>> missing?
>
> RFC 5057 reflects more recent operational experience than RFC 3265.
> Even though it is only informational, I would take its notion of what
> destroys a dialog versus just failing a transaction to be more
> informed than RFC 3265's. In fact, in the revision to RFC 3265
> currently underway, we specifically use the RFC 5057 rules for
> destruction of dialogs, usages, and transactions.

that's very good to hear, looking forward to that.

Stefan

>
> So, in this case, I believe that the B2BUA stack has it wrong, and
> shouldn't be terminating the dialog. This will be much clearer when
> the next version of SIP Events is published.
>
> /a
>

___
Sip-implementors mailing list
Sip-implementors@lists.cs.columbia.edu
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors


Re: [Sip-implementors] Retransmitted NOTIFY overlaps with the next one - what is the correct behavior?

2011-11-23 Thread Stefan Sayer
o Paul Kyzivat on 11/23/2011 07:17 PM:
> On 11/23/11 9:21 PM, Robert Szokovacs wrote:
>> Hi,
>>
>> I have the following setup: a B2BUA based on sipstack "A" and a mediaserver,
>> based on sipstack "B".
>> Themediaserver  sends a REFER to the B2BUA which starts to send NOTIFYs
>> according to the progress of the REFERred call: for example: 100, 183,. 180,
>> 200. One of the NOTIFY gets lost on the network, lets say the 183, the "A"
>> stack retransmits it, but before the retransmittion, the 180 is sent and
>> replied:
>>
>> 100->
>> <--OK(100)
>> 183->
>> 180->
>><-OK(180)
>> 183(r)->
>><-500
>> ("A" stack terminates the subscription)
>>
>> The "B" stack refuses the retransmitted 183 NOTIFY with 500, because it's 
>> cseq
>> is smaller than the 180's, which seems correct as per 12.2.2 of RFC3261:
>> "
>> If the remote sequence number was not empty, but the sequence number
>>  of the request is lower than the remote sequence number, the request
>>  is out of order and MUST be rejected with a 500 (Server Internal
>>  Error) response.
>> "
>>
>> The "A" stack in turn terminates the subscription and the transaction dies,
>
> The main problem here is that the "A" stack should not terminate the
> subscription. This error should only affect the NOTIFY transaction at
> hand. (See RFC 5057, section 5.1).
I would have thought so, too (and IMO it's the sensible thing to 
assume), but RFC 3265 3.2.2.   says this:

  A NOTIFY request is considered failed if the response times out, or a
non-200 class response code is received which has no "Retry-After"
header and no implied further action which can be taken to retry the
request (e.g., "401 Authorization Required".)

...

If the NOTIFY request fails (as defined above) due to an error
response, and the subscription was installed using a soft-state
mechanism, the notifier MUST remove the corresponding subscription.

   A notify error response would generally indicate that something
   has gone wrong with the subscriber or with some proxy on the way
   to the subscriber.  If the subscriber is in error, it makes the
   most sense to allow the subscriber to rectify the situation (by
   re-subscribing) once the error condition has been handled.  If a
   proxy is in error, the periodic SUBSCRIBE refreshes will re-
   install subscription state once the network problem has been
   resolved.


so I don't understand how in RFC 5057, section 5.1, 500 (or unknown 
5xx) show up in "Transaction Only" and not in "Destroys Usage" - what 
am I missing?

thanks!
Stefan

>
>> because the mediaserver application expects to receive more NOTIFYs, at least
>> one with  "subscription-state: terminated", but it never comes. The "B" stack
>> doesn't notify the mediaserver application, so has no way of knowing 
>> something
>> went wrong.
>>
>> What would be the correct behavior?
>> Should the B2BUA hold the sending of the next NOTIFY until it doesn't receive
>> reply to the last one?
>> Should the "A" stack marshall the NOTIFYs and make sure they don't get out of
>> order?
>
> There is a general issue with overlapping NOTIFYs if one gets lost or
> delayed, which you are seeing here. The proper way to deal with this
> depends on the details of the event package. For some event packages it
> can cause a real mess and the only good solution is to delay sending the
> next notify till the last one is known to have been received.
>
> But in other cases, like this one, it doesn't really matter much if one
> is lost as long as a subsequent one is received. So in this case its
> sufficient for "A" to send then as the state changes, so long as it
> properly handles a 500 response - by just ignoring it when a subsequent
> notify is known to have been sent.
>
>> Should the "B" stack accept out-of-order NOTIFYs?
>
> NO!
>
>   Thanks,
>   Paul
>
>> Thank you in advance!
>>
>> br
>>
>> Szo
>>
>>
>> ___
>> Sip-implementors mailing list
>> Sip-implementors@lists.cs.columbia.edu
>> https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors
>>
>
> ___
> Sip-implementors mailing list
> Sip-implementors@lists.cs.columbia.edu
> https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors
>
___
Sip-implementors mailing list
Sip-implementors@lists.cs.columbia.edu
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors


Re: [Sip-implementors] RFC 2833 Telephone-Event RTP Payload Type

2009-09-11 Thread Stefan Sayer


o Socaciu, Vlad [09/11/09 01:35]:
> I found the following question raised by Mr. Greg Dykes on Sun Sep 28:
> 
> My question really is about the actual usage of a numeric payload type
> indicator. The assumption with my question is that both SIP UAs are
> negotiating the same "telephone-event' RTP payload. As I understand
> each SIP UA can specify their own payload type indicator (96-127)
> which represents a specific, static "telephone-event" RFC 2833 RTP
> payload. In other words, they don't have to make use of the same
> value. So am I correct in saying that each SIP UA can indeed make use
> of a different payload type indicator in the dynamic range of 96-127?
> And if so does this value represent the UA's intended RTP payload type
> for SENDING or RECEIVING RTP?
> 
> Thanks,
> 
> - Greg
> 
> It seems to be a very clear and pertinent question. But there are no other 
> messages on this thread. I am facing the same dilemma. Can someone provide a 
> resolution?

Have a look at SDP offer/answer RFC, 
http://www.ietf.org/rfc/rfc3264.txt, 5.1 Unicast Streams; what is said 
there applies to telephone-event payload as with any other dynamic 
payload. Here about the offerer:

For recvonly RTP streams, the payload type numbers indicate the value
of the payload type field in RTP packets the offerer is expecting to
receive for that codec.  For sendonly RTP streams, the payload type
numbers indicate the value of the payload type field in RTP packets
the offerer is planning to send for that codec.  For sendrecv RTP
streams, the payload type numbers indicate the value of the payload
type field the offerer expects to receive, and would prefer to send.
However, for sendonly and sendrecv streams, the answer might indicate
different payload type numbers for the same codecs, in which case,
the offerer MUST send with the payload type numbers from the answer.

Best Regards
Stefan


> 
> Thanks.
> 
> Vlad Socaciu
> 
> 
> ___
> Sip-implementors mailing list
> Sip-implementors@lists.cs.columbia.edu
> https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors
___
Sip-implementors mailing list
Sip-implementors@lists.cs.columbia.edu
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors


Re: [Sip-implementors] Receiving a INVITE fro a conference server showing the current participants

2009-08-31 Thread Stefan Sayer


o Iñaki Baz Castillo [08/31/09 15:45]:
> 2009/8/31 Stefan Sayer :
>> Hi Iñaki,
>>
>> o Iñaki Baz Castillo [08/31/09 13:23]:
>>> Hi, an existing and very extended privative and diabolic VoIP protocol
>>> has a cool feature about voice conference:
>>>
>>> 1) alice is speaking with bob.
>>> 2) alice decide to invite carol to the conference.
>>> 3) carol receives a call and shows the number of the participants
>>> (alice and bob).
>>>
>>> With the current SIP conference specifications (which I have not read
>>> yet):
>>>
>>> - Is point 2 possible? This is: creating a conference from a previous
>>> user2user normal call.
>> alice can set up the conference call and transfer bob and possibly carol
>> into the conference.
> 
> Yes, but this is not so useful. In most of the cases the flow is:
> 
> - alice is speaking with bob.
> - Later, both realize that carol has been connected (presente status).
> - alice wants to invite carol to the *existing* conference.
> 
> This is what people expects instead of having to call first to the
> conference server, latter invite bob and carol in other phone line and
> transfer them to the conference.
of course this is what the phone should do (if it is 'intelligent'), not 
the user of the phone, who should not have to care what is happening 
behind the curtains.


> 
> 
> 
>>> - Is point 3 possible? This is: the INVITE carol receives contains
>>> info about the current participants and also includes some header or
>> I think the idea is to SUBSCRIBE to a conference notification service that
>> will give you the list of participants attending, and NOTIFY you in case of
>> changes.
> 
> Sorry but I don't understand. How could it be useful? what about
> dynamically created conferences? Nobody can expect that carol is
when you get the INVITE, you can fetch the status of the dynamically 
created conference (subscribe with expires 0), display it to your user, 
and if he wants to accept, subscribe again, for live status of your 
conference.

> always subscribed to *any* conference. And anyway... does a
> "subscription to conference status" exist for SIP?
have a look at RFC 4353 and referenced documents.


Personal opinion follows below (apologies if too much).

>> A much much simpler method for a completely centralized conference: Have the
>> SDP contain an u= line (see RFC4566), or the INVITE a Call-Info header (see
>> 3261) with the url, and in the client display the conference status and
>> control with state of the art web app GUI (not very beautiful example, but
>> does have url in SDP: https://webconference.iptel.org ). REFER bob to the
>> conference.
> 
> Thanks, but what you suggest seems more a "propietary" implementation
> rather than a real standard, so it would require "custom" clients
> understanding these parameters in the way you suggest. Also, I expect
u= line in SDP is standardized with exactly that meaning since 2327, 
even though apparently no one uses it in the context of SIP with SDP 
offer/answer.

Call-Info is from RFC3261, and it doesn't seem to me that the usage is 
proprietary, even though unfortunately no one uses it.


> that the days in which all the "cool" SIP features are implemented as
> a web are close to dissapear :)
and the divide between SIP networks and "innovative/cool services" is 
getting bigger by the day, indeed.


> 
> The intelligence must be in the endpoints rather than in a web page :)
show me a reasonably priced SIP phone that implements all of that 
conferencing framework (client side), supporting what you asked for 
above. I think this will not change in the coming years. What we are 
going to have much earlier is mobile and fixed devices which are much 
more intelligent: They are able do render complex GUIs in a full web 
browser, because there is demand and this is commodity technology already.

For a conference that is centralized anyway (mixing, policies etc), it 
would IMO make sense to use the UI techniques and technologies that were 
developed in the web world in telco world as well, because they are 
simply much more advanced, interoperable, cheaper (both client and 
server side), flexible.

Stefan

___
Sip-implementors mailing list
Sip-implementors@lists.cs.columbia.edu
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors

Re: [Sip-implementors] Receiving a INVITE fro a conference server showing the current participants

2009-08-31 Thread Stefan Sayer

Hi Iñaki,

o Iñaki Baz Castillo [08/31/09 13:23]:
> Hi, an existing and very extended privative and diabolic VoIP protocol
> has a cool feature about voice conference:
> 
> 1) alice is speaking with bob.
> 2) alice decide to invite carol to the conference.
> 3) carol receives a call and shows the number of the participants
> (alice and bob).
> 
> With the current SIP conference specifications (which I have not read yet):
> 
> - Is point 2 possible? This is: creating a conference from a previous
> user2user normal call.
alice can set up the conference call and transfer bob and possibly carol 
into the conference.

> 
> - Is point 3 possible? This is: the INVITE carol receives contains
> info about the current participants and also includes some header or
I think the idea is to SUBSCRIBE to a conference notification service 
that will give you the list of participants attending, and NOTIFY you in 
case of changes.

> attribute that indicates carol that the request comes from a
> conference system.
grep the standards for "isfocus".

A much much simpler method for a completely centralized conference: Have 
the SDP contain an u= line (see RFC4566), or the INVITE a Call-Info 
header (see 3261) with the url, and in the client display the conference 
status and control with state of the art web app GUI (not very beautiful 
example, but does have url in SDP: https://webconference.iptel.org ). 
REFER bob to the conference.

Stefan
___
Sip-implementors mailing list
Sip-implementors@lists.cs.columbia.edu
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors

Re: [Sip-implementors] ad hoc conferences with SIP

2009-01-21 Thread Stefan Sayer
Hello,

o Dale Worley [01/20/09 21:50]:
> (2) The SIP standards tend to define *mechanisms* that are utilized to
> implement "features" -- E.g., a phone executes a blind transfer by
> sending a REFER to the remote phone.  So one UA will be the one that

you can find more about transfer mechanisms in 
draft-ietf-sipping-cc-transfer (currently 
http://tools.ietf.org/html/draft-ietf-sipping-cc-transfer-11)

Regards
Stefan
___
Sip-implementors mailing list
Sip-implementors@lists.cs.columbia.edu
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors


Re: [Sip-implementors] In-Band DTMF

2008-12-03 Thread Stefan Sayer


o maverick me [12/03/08 05:32]:
> Hi All,
> 
> Is there any open source available that support detection of In-Band DTMF.
you could be interested in the spandsp library from 
http://www.soft-switch.org

Stefan

___
Sip-implementors mailing list
Sip-implementors@lists.cs.columbia.edu
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors


Re: [Sip-implementors] Why does 6XX break a serial forking?

2008-06-04 Thread Stefan Sayer


o Iñaki Baz Castillo [06/03/08 14:46]:
>> It may well be that the user at that one extension noticed the caller id
>> was that nasty bill collector that he doesn't want to talk to. So he
>> pushed the "reject this call totally" button, and that resulted in the
>> 6xx response. Not sending the call to VM is exactly what was intended.
> 
> Ok, but imagine my case. In calls from PSTN if the called returns 4XX/6XX I 
> want to forward the request to a media server to reproduce an early 
> announcement ("the number you are calling is not available now"). The called 
> shouldn't have the possibility of avoiding this forwarding to the caller 
> since it's a provider decission, non him decission. But 6XX breaks the 
> provider if he is using a proxy and not a B2BUA.
if you really want to do that, even if your user (the callee) decided to 
not take the call, it sounds to me like this is exactly a case for 
B2BUA: the  provider<->callee dialog is in no case to be continued. so, 
if you want a caller<->provider dialog to continue in that case, you 
need two dialogs,  hence B2BUA.

BR,
Stefan Sayer
___
Sip-implementors mailing list
Sip-implementors@lists.cs.columbia.edu
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors


Re: [Sip-implementors] RE-INVITE Problem [packet capture inside]

2007-08-08 Thread Stefan Sayer
[EMAIL PROTECTED] wrote:
> In regard to how the answer may be different from the offer, the rules
> are in section 6.1 of RFC 3264.  In many cases, the answerer may add
> media formats.  E.g.,
> 
>For streams marked as sendrecv in the answer, the "m=" line MUST
>contain at least one codec the answerer is willing to both send and
>receive, from amongst those listed in the offer.  The stream MAY
>indicate additional media formats, not listed in the corresponding
>stream in the offer, that the answerer is willing to send or
>receive (of course, it will not be able to send them at this time,
>since it was not listed in the offer).
the payloads from the second answer are the same as the ones from the 
second offer (just in different order):

1st offer:
   Session ID: 251733463
   Session Version: 1181517354
   payloads: 3 98 97 8 0 101
1st answer:
   Session ID: 162119823
   Session Version: 1294106766
   payloads: 3 101

...

2nd offer:
   Session ID: 251733463
   Session Version: 1181517354
   payloads: 3 98 97 8 0 101
2nd answer:
   Session ID: 162119823
   Session Version: 1294106766
   payloads: 98 97 8 0 3 101

> 
> In any case, if one is trying to debug SDP, one should have read RFC
> 3264 carefully.
how true.

Regards
Stefan Sayer

-- 

   iptego - VoIP security

   www.iptego.de

___
Sip-implementors mailing list
Sip-implementors@lists.cs.columbia.edu
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors


Re: [Sip-implementors] RE-INVITE Problem [packet capture inside]

2007-08-08 Thread Stefan Sayer

Paul Kyzivat wrote:
> Dale has covered this. For the original poster, Stefan: there is a lot 
> of written information on this subject that you don't seem to be 
> familiar with. The most obvious are RFCs 3261 and 3264. For a more 
I wonder how I made the impression to not be familiar with 3264, as I 
mentioned the requirement from it to increase the o-line version number 
if the session is to be modified (8 Modifying the Session):

The offer MAY be identical to the last SDP provided to the other
party (which may have been provided in an offer or an answer), or it
MAY be different.  We refer to the last SDP provided as the "previous
SDP". If the offer is the same, the answer MAY be the same as the
previous SDP from the answerer, or it MAY be different.  If the
offered SDP is different from the previous SDP, some constraints are
placed on its construction, discussed below.

[...] When issuing an offer that modifies the session,
the "o=" line of the new SDP MUST be identical to that in the
previous SDP, except that the version in the origin field MUST
increment by one from the previous SDP.  If the version in the origin
line does not increment, the SDP MUST be identical to the SDP with
that version number.

I would say it makes sense to increase the version in the origin line as 
well as apply the other constraints to the modified answer too, but the 
text does not really say that, unlike

> complete treatment, see
> http://www.ietf.org/internet-drafts/draft-ietf-sipping-sip-offeranswer-02.txt
where you write in 4.2.5. Subsequent Offers and Answers:

  o In the o-line, only the version number may change, and if it
changes it must increment by one from the one previously sent as
an offer or answer. If it doesn't change then the entire SDP body
must be identical to what was previously sent as an offer or
answer.


> 
> Once you understand those I think your questions will be answered.
> 
>   Paul
> 

Regards
Stefan Sayer

___
Sip-implementors mailing list
Sip-implementors@lists.cs.columbia.edu
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors


Re: [Sip-implementors] RE-INVITE Problem [packet capture inside]

2007-08-07 Thread Stefan Sayer
Hello,

[EMAIL PROTECTED] wrote:
>From: Manjunath Warad <[EMAIL PROTECTED]>
> 
>I have strong doubt on the SDP that is exchanged in 200 of
>Re-INVITE. Answerer has added other media formats that he supports and I
>don't think offerer would support those and hence offerer could be 
> releasing
>the call by sending ACK and BYE.
> 
> Why do you have doubt?  Read RFC 3264 ("An Offer/Answer Model with the
> Session Description Protocol (SDP)"), section 8 ("Modifying the
> Session"), subsection 8.3 ("Modifying a Media Stream"), subsection
> 8.3.2 ("Changing the Set of Media Formats"):
> 
>The list of media formats used in the session MAY be changed.  To do
>this, the offerer creates a new media description, with the list of
>media formats in the "m=" line different from the corresponding media
>stream in the previous SDP.  This list MAY include new formats, and
>MAY remove formats present from the previous SDP.  However, in the
>case of RTP, the mapping from a particular dynamic payload type
>number to a particular codec within that media stream MUST NOT change
>for the duration of a session.

The offerer may change the stream, but the answerer? And then, if you 
change any part of the SDP, you must update (increase) the session 
version, which in both SDPs of the two 200s is 1294106766.

> 
> Dale
> ___
> Sip-implementors mailing list
> Sip-implementors@lists.cs.columbia.edu
> https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors

Regards
Stefan Sayer

-- 

   iptego - VoIP security

   www.iptego.de

___
Sip-implementors mailing list
Sip-implementors@lists.cs.columbia.edu
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors