Archive for the ‘SIP’ Category

SIPit 29 Registration Open – October 24-28, 2011, in Monte Carlo, Monaco

Tuesday, July 19th, 2011
Sipit29

Today SIPit coordinator Robert Sparks announced to several mailing lists that registration is open for SIPit 29, to be held October 24-28, 2011, in Monte Carlo, Monaco. The event has its own website at:

http://www.etsi.org/plugtests/SIPIT29/

and the “About” page gives a bit more detail.

I’ve written about SIPit events before – and we as a company have found them immensely valuable. They are a great place to bring your latest SIP software and hardware and test it against a wide range of other SIP implementations. Basically it’s an inexpensive way to get a week’s use of a better interoperability test lab than you will probably ever be able to build on your own.

The SIPit events also are great for our industry in that they help vendors make their equipment work better together… and the more we have of that the sooner we’ll be able to move beyond the PSTN and get the full value of rich communication possible in a pure IP communications environment.

I do hope many of you will consider going to SIPit 29!


Want to learn how Voxeo can help unlock your communications and deliver a better customer experience? Please contact us!

If you found this post interesting or helpful, please consider either subscribing via RSS, becoming a fan on Facebook, or following us on Twitter.


New Version of “Design Considerations for Session Initiation Protocol (SIP) Overload Control”

Wednesday, July 13th, 2011

ietf-shadow.jpgThe IETF this week released an important new draft titled “Design Considerations for Session Initiation Protocol (SIP) Overload Control” that is available at:

http://tools.ietf.org/html/draft-ietf-soc-overload-design

The importance here is that it is a fact of life that SIP-based communication servers can get “overloaded” with messages and not be able to respond to all incoming SIP messages. A SIP server could be overloaded by situations such as:

  • too many users wanting to make simultaneous calls (think of the extreme case of a crisis situation)
  • a failure of upstream connectivity that limits the capacity of the SIP server
  • some other program on the server itself that consumes so much CPU and other resources that the SIP application can’t operate efficiently
  • some SIP endpoint(s) that are spewing bogus messages at the server.
  • an attacker executing a Denial-of-Service attack

Regardless of the mechanism, SIP servers need to be able to gracefully handle an overload.

The IETF has in fact spun up a Working Group – SIP Overload Control (SOC) – focused on this exact problem and chartered to come up with mechanisms to cope with SIP overload

This Internet-Draft on overload design considerations is one of the documents of this group and is well worth a read, as it explores the various mechanisms that can be used to combat overload.

Incidentally, if you’d like to join in the SOC discussions, or even just monitor what is being discussed, the working group operates a public mailing list at:

https://www.ietf.org/mailman/listinfo/sip-overload

Overload is definitely a potential issue within SIP networks and it’s good to see this group working on the issue.


Want to learn how Voxeo can help unlock your communications and deliver a better customer experience? Please contact us!

If you found this post interesting or helpful, please consider either subscribing via RSS, becoming a fan on Facebook, or following us on Twitter.


Slides from eComm 2011: How IPv6 Will Kill Telecom – And What We Need To Do About It

Monday, July 11th, 2011

How will IPv6 impact telecommunications? Out at eComm 2011 two weeks ago I gave a talk titled “How IPv6 Will Kill Telecom – And What We Need To Do About It” and while the video won’t be online for some time, my slides are available. Granted, the particular style of presenting I use means that the slides themselves may not be as valuable without the narration… but you may find the links and issues raised to be useful:

P.S. I have had a couple of people ask if I would be open to presenting a variation of this presentation for their company or conference… and my answer is that yes, I’m usually very open to giving presentations if my schedule allows. Webinars/webcasts are easy to line up… and delivering the presentation in person may certainly be an option. Please just contact me and we can figure out what makes sense.


Want to learn how Voxeo can help unlock your communications and deliver a better customer experience? Please contact us!

If you found this post interesting or helpful, please consider either subscribing via RSS, becoming a fan on Facebook, or following us on Twitter.


How Does SIP Use the Offer/Answer Model? A Document Explains…

Wednesday, June 15th, 2011
Sipping on a latte

One of the interesting aspects of the Session Initiation Protocol (SIP) is that is uses the “offer/answer” model to negotiate how a session is to be established… and to also update that session while it is in progress. A basic example would be the exchange of Session Description Protocol (SDP) information during an initial SIP INVITE to determine what audio codecs to use.

As SIP uses the offer/answer model in a number of ways, some folks very helpfully put together this Internet Draft:

http://tools.ietf.org/html/draft-ietf-sipping-sip-offeranswer

The abstract is:

The Session Initiation Protocol (SIP) utilizes the offer/answer model to establish and update multimedia sessions using the Session Description Protocol (SDP). The description of the offer/answer model in SIP is dispersed across multiple RFCs. This document summarizes all the current usages of the offer/answer model in SIP communication. Also, this document tries to incorporate the results of the discussions on the controversial issues to avoid repeating the same discussions later.

If you are seeking to understand how SIP works down at a protocol layer, this document is a useful guide to an important part of SIP.

Image credit: charlesonflickr


Want to learn how Voxeo can help unlock your communications and deliver a better customer experience? Please contact us!

If you found this post interesting or helpful, please consider either subscribing via RSS, becoming a fan on Facebook, or following us on Twitter.


What is the CUSS Working Group all about? And what is UUI anyway?

Tuesday, June 14th, 2011

Back in September, I wrote about the creation of the Call Control UUI Service for SIP (CUSS) working group within the IETF. Recently, I had a chance to sit down with Alan Johnston, the lead author of the primary document within the CUSS working group, to talk about what CUSS is all about. I posted the video to my Emerging Tech Talk podcast and you can now listen to Alan explain it all (without actually cussing, I might add):


Want to learn how Voxeo can help unlock your communications and deliver a better customer experience? Please contact us!

If you found this post interesting or helpful, please consider either subscribing via RSS, becoming a fan on Facebook, or following us on Twitter.


IPv6 and SIP Subject of Today’s VUC Call at 1pm US Eastern

Friday, May 27th, 2011

I just noticed this morning that Randy over at the VoIP Users Conference (VUC) has a second hour of today’s show focused on IPv6 and SIP as it relates to offerings from Junction Networks. As the show page says:

IPv6 has serious benefits for SIP, so Junction Networks has made it a priority to begin making their network and systems IPv6 ready. Currently, they are directly connected to the IPv6 Internet via multiple providers and have established network infrastructure and redundancy.

The call is today, Friday, May 27, 2011, at 1:00pm US Eastern.

You can join the live call via SIP, Skype or the regular old PSTN. There is also an IRC backchannel that gets heavy usage during the call. It will be recorded so you can always listen later.

For those interested in other VoIP topics, hour #1 of today’s VUC will be about new video-capable SIP phones and other devices from Grandstream Networks.


Want to learn how Voxeo can help unlock your communications and deliver a better customer experience? Please contact us!

If you found this post interesting or helpful, please consider either subscribing via RSS, becoming a fan on Facebook, or following us on Twitter.


Java Media Control: Using MediaMixer

Monday, May 9th, 2011

Besides using MediaGroup to provide multimedia functions, another common use of media server is multi-party conference calls. MediaMixer is the object in Java Media Control that provides sound mixing capability.

Overview

Similar to MediaGroup, a MediaMixer is a Joinable MediaObject. To connect an endpoint to MediaMixer, simply joining the endpoint’s NetworkConnection to the MediaMixer object, as illustrated in the following diagram from JSR 309 specification.

NC1.join(DUPLEX, theMediaMixer);
NC2.join(DUPLEX, theMediaMixer);
NC3.join(DUPLEX, theMediaMixer);

Sample Application

Here is a simple conference application. When a call comes in, the application asks the caller to input a conference number (max 9 digits). Based on the conference number, the application either create or locate a MediaMixer. Then join the caller’s NetworkConnection to the MediaMixer.

The following is a simplified sequence diagram that shows the interaction among different objects.

Participant Object

The Participant is an abstraction that capture all the signaling and media states and operations on the per caller (conference participant) basis. This is a design pattern I often use in SIP Servlet and Java Media Control based applications.

When an initial SIP INVITE message comes, the MainServlet creates a new Participant object. During the construction, Participant initializes a MediaSession and create a NetworkConnection and a MediaGroup from the MediaSession. Then Participant uses SdpPortManager of the NetworkConnection to negotiate the SDP with the client. See SDP Negotiation for more information about the SdpPortManager.

Collect Conference ID

Once the call is setup, Participant asks the caller to input the conference ID. Instead of using Player to ask the question and use SignalDetector to collect input, I use the PROMPT in the SignalDetector to ask and collect in a single receiveSignal call, as shown below.

 SignalDetector detector = _mg.getSignalDetector();
 Parameters options = _factory.createParameters();
 options.put(SignalDetector.INTER_SIG_TIMEOUT, 5000);
 options.put(SignalDetector.PROMPT, URI.create("data:" + ANNOUCEMENT));
 detector.receiveSignals(9, SignalDetector.NO_PATTERN, RTC.NO_RTC, options);

I also set INTER_SIG_TIMEOUT to 5 seconds. This allows SignalDetector to collect any conference ID that is less 9 digits long when the user stops inputting for 5 seconds. Otherwise, SignalDetector will keep waiting until the user inputs 9 digits.

Join the Conference

Once the conference ID is collected, Participant calls MixerManager to create a MediaMixer based on the ID. The MixerManager maintains a mapping between ID and MediaMixer and only creates a MediaMixer when needed.

 public synchronized MediaMixer createMixer(Configuration config, Parameters options, String key) throws MsControlException {
   MediaMixer mixer = _mixers.get(key);
   if (mixer == null) {
      MediaSession session = _factory.createMediaSession();
      mixer = session.createMediaMixer(config, options);
      _mixers.put(key, mixer);
    }
    return mixer;
 }

Once Participant obtains the MediaMixer, it will join its NetworkConnection to the MediaMixer.

  public void join(String id) throws MsControlException {
    _mixer = _mgr.createMixer(MediaMixer.AUDIO, Parameters.NO_PARAMETER, id);
    _id = id;
    _nc.join(Direction.DUPLEX, _mixer);
  }

Leave the Conference

When the caller hangs up the call, SIP BYE is received by the MainServlet. Participant, retrieved from the SipSession, unjoin its NetworkConnection from the MediaMixer.

  public void unjoin() throws MsControlException {
    if (_mixer != null) {
      _mixer.unjoin(_nc);
      _ms.release();
      _mgr.removeMixer(_id);
    }
  }

The MixerManager only removes the MediaMixer when no Participant is joined.

  public synchronized MediaMixer removeMixer(String key) throws MsControlException {
    MediaMixer mixer = getMixer(key);
    if (mixer.getJoinees().length == 0) {
      _mixers.remove(key);
      mixer.release();
      mixer.getMediaSession().release();
      return mixer;
    }
    return null;
  }

SipListener

I implemented a SipListener as both SipSessionListener and SipErrorListener to handle the following events.

  • SipErrorListener.noAckRecieved. Because MediaSession and related resources are created when INVITE is created, we need clean it up when call setup is failed because of no ACK.
  • SipSessionListener.sessionDestroyed. Similar, we need clean upĀ  the MediaSession when the SipSession is destroyed.

Test Sample

As other samples, simply download the WAR and deployed it under <prism>/apps directory. You can use two softphones dialing into the server to form a two party conference call. Please note Voxeo Prism free trial only comes with 2 media ports. Please contact Voxeo Support to request additional licenses.


Want to learn how Voxeo can help unlock your communications and deliver a better customer experience? Please contact us!

If you found this post interesting or helpful, please consider either subscribing via RSS, becoming a fan on Facebook, or following us on Twitter.


Slides: IPv6 and How It Impacts Communication Applications

Thursday, May 5th, 2011

While the slides and recording of today’s webinar on IPv6 will be available tomorrow on the Jam Session web page, I also made this set of slides available on SlideShare. The nice thing about SlideShare is that I can also embed them here in this post… enjoy!


Want to learn how Voxeo can help unlock your communications and deliver a better customer experience? Please contact us!

If you found this post interesting or helpful, please consider either subscribing via RSS, becoming a fan on Facebook, or following us on Twitter.


New IPv6 Mailing List From SIP Forum For Discussing SIP/VoIP Issues With IPv6

Wednesday, May 4th, 2011

SipforumInterested in learning more about how IPv6 impacts SIP and other VoIP protocols? Want to help advance the state of SIP usage and tools over IPv6? Or just interested in monitoring what is going on with IPv6 and SIP?

If so, you can now join a new “ipv6″ mailing list created by the SIP Forum. To join the list, just visit:

http://sipforum.org/mailman/listinfo/ipv6

At SIPNOC 2011 last week, one of the actions that came out of the IPv6 BOF session I moderated was the creation of this mailing list. I’ll post my notes from the session soon… but a key point was to get a public mailing list set up that could be used to communicate with people interested in the topic. At the BOF we identified several actions that the SIP Forum could undertake… we’ll use that mailing list as a way to talk about those possible actions and figure out what makes sense for the group to do (and who can do it).

If you are interested in IPv6 and SIP, please do join the mailing list!

P.S. To prevent spammers from joining the list, each subscription request is manually approved by the SIP Forum’s Marc Robins. Depending upon when you subscribe and when Marc is checking his email, there may be a slight delay in getting approved for the list.


Want to learn how Voxeo can help unlock your communications and deliver a better customer experience? Please contact us!

If you found this post interesting or helpful, please consider either subscribing via RSS, becoming a fan on Facebook, or following us on Twitter.


Photos: The Many Faces of SIPNOC 2011

Wednesday, May 4th, 2011

While at SIPNOC 2011 last week in Herndon, VA, I shot a good number of photos of the presenters and attendees. I’ve uploaded some of the better shots to our Flickr account and you can view the SIPNOC set there:

Sipnoc2011

I tried to capture most all of the presenters there. The images are licensed under a Creative Commons Attribution license which essentially means that you are welcome to use them as long as you link back to the photo (if online) or provide an attribution link in written material.

If you are in any of the photos and want a higher resolution version for your own usage, please just email me and can get one to you.

For photography geeks, almost all of the photos were taken with my Nikon D90. A few were taken with my iPhone 4. Most were not altered but a few had the “Enhance” edit done in iPhoto.


Want to learn how Voxeo can help unlock your communications and deliver a better customer experience? Please contact us!

If you found this post interesting or helpful, please consider either subscribing via RSS, becoming a fan on Facebook, or following us on Twitter.