Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Maven users will need to add the following dependency to their pom.xml for this component:

Code Block
xml
xml

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-sip</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>

...

The URI scheme for a sip endpoint is as follows:

Code Block

sip://johndoe@localhost:99999[?options]
sips://johndoe@localhost:99999/[?options]

...

Div
classconfluenceTableSmall

Name

Default Value

Description

stackName

NAME_NOT_SET

Name of the SIP Stack instance associated with an SIP Endpoint.

transport

tcp

Setting for choice of transport potocol. Valid choices are "tcp" or "udp".

fromUser

 

Username of the message originator. Mandatory setting unless a registry based custom FromHeader is specified.

fromHost

 

Hostname of the message originator. Mandatory setting unless a registry based FromHeader is specified

fromPort

 

Port of the message originator. Mandatory setting unless a registry based FromHeader is specified

toUser

 

Username of the message receiver. Mandatory setting unless a registry based custom ToHeader is specified.

toHost

 

Hostname of the message receiver. Mandatory setting unless a registry based ToHeader is specified

toPort

 

Portname of the message receiver. Mandatory setting unless a registry based ToHeader is specified

maxforwards

0

the number of intermediaries that may forward the message to the message receiver. Optional setting. May alternatively be set using as registry based MaxForwardsHeader

eventId

 

Setting for a String based event Id. Mandatory setting unless a registry based FromHeader is specified

eventHeaderName

 

Setting for a String based event Id. Mandatory setting unless a registry based FromHeader is specified

maxMessageSize

1048576

Setting for maximum allowed Message size in bytes.

cacheConnections

false

Should connections be cached by the SipStack to reduce cost of connection creation. This is useful if the connection is used for long running conversations.

consumer

false

This setting is used to determine whether the kind of header (FromHeader,ToHeader etc) that needs to be created for this endpoint

automaticDialogSupport

off

Setting to specify whether every communication should be associated with a dialog.

contentType

text

Setting for contentType can be set to any valid MimeType.

contentSubType

xml

Setting for contentSubType can be set to any valid MimeSubType.

receiveTimeoutMillis

10000

Setting for specifying amount of time to wait for a Response and/or Acknowledgement can be received from another SIP stack

useRouterForAllUris

false

This setting is used when requests are sent to the Presence Agent via a proxy.

msgExpiration

3600

The amount of time a message received at an endpoint is considered valid

presenceAgent

false

This setting is used to distingish between a Presence Agent & a consumer. This is due to the fact that the SIP Camel component ships with a basic Presence Agent (for testing purposes only). Consumers have to set this flag to true.

...

  • using a SIP Stack named client
  • using a registry based eventHeader called evtHdrName
  • using a registry based eventId called evtId
  • from a SIP Stack with Listener set up as user2@localhost:3534
  • The Event being published is EVENT_A
  • A Mandatory Header called REQUEST_METHOD is set to Request.Publish thereby setting up the endpoint as a Event publisher"
Code Block

producerTemplate.sendBodyAndHeader(  
    "sip://agent@localhost:5152?stackName=client&eventHeaderName=evtHdrName&eventId=evtid&fromUser=user2&fromHost=localhost&fromPort=3534",   
    "EVENT_A",  
    "REQUEST_METHOD",   
    Request.PUBLISH);  

...

  • using a SIP Stack named Subscriber
  • registering with a Presence Agent user called agent@localhost:5152
  • using a registry based eventHeader called evtHdrName. The evtHdrName contains the Event which is se to "Event_A"
  • using a registry based eventId called evtId
Code Block

@Override  
protected RouteBuilder createRouteBuilder() throws Exception {  
    return new RouteBuilder() {  
        @Override  
        public void configure() throws Exception {    
            // Create PresenceAgent  
            from("sip://agent@localhost:5152?stackName=PresenceAgent&presenceAgent=true&eventHeaderName=evtHdrName&eventId=evtid")  
                .to("mock:neverland");  
                  
            // Create Sip Consumer(Event Subscriber)  
            from("sip://johndoe@localhost:5154?stackName=Subscriber&toUser=agent&toHost=localhost&toPort=5152&eventHeaderName=evtHdrName&eventId=evtid")  
                .to("log:ReceivedEvent?level=DEBUG")  
                .to("mock:notification");  
                  
        }  
    };  
}  

...