Class SIP::BaseController
In: sipper/base_controller.rb
Parent: Object

Methods

Included Modules

SipLogger

Public Class methods

Directive for setting the prexisting route set at the controller level.

the upper limit of session lifetime, defaults to :SessionLimit from configuration.

value can be msg-info or msg-debug

The session timer for session invalidation, the default is taken from the configuration :SessionTimer

the hash of 3 timer values that affect 2xx retransmissions for UAS i.e {:Start=>100, :Cap=>400, :Limit=>1600} that roughly correspond with T1, T2 and 64*T1 respectively, which are also the defaults. The argument hash doesnt have to be all the three values but any that are required to be overridden.

transaction_handlers :Ict=>MyIctHandler, :Nict=>MyNictHandler, :Base=>CatchAllHandler

The transaction timers can be set at the controller level which override the default timer configuration. Eg. usage

  transaction_timers :t1=>100, :ta=200

Here the modifier is setting the T1 timer value to 100 msec and TimerA to 200 msec.

The transaction usage hash setting is like a modifier in the controller. The setting is exactly same as the configuration setting eg transaction_usage :use_transactions=>true, :use_ict=>false, :use_nict=>true

Directive for setting compact headers for outgoing requests for this controller. The headers can be defined by their sipper symbols like :call_id and :via or you can chose to have :all_possible in which Sipper use compact form for all headers that have a compact form.

Public Instance methods

The dialog info store, keeps track of AOR => ["call_id;local_tag;remote_tag",..] for the AOR belonging to the UA.

enables chaining by detecting interest early

Session callbacks ——

  • Interestingly the benchmark for direct call, m.call and send are
         user     system      total        real
     4.726000   0.000000   4.726000 (  4.757000)
     6.810000   0.030000   6.840000 (  6.870000)
     5.027000   0.000000   5.027000 (  5.027000)
     So I am continuing with send mechanism
     But perhaps it is still OK to return a boolean from here as we may use it
     for some other purposes.
    

returns an integer indicating the position in order array as used in controller selection. -1 indicates to disregard this value. This if present supercedes the order.yaml. This allows for ordering inline controllers.

Returns a transport specified for the controller in the form

ip, port, transport
where transport is optional and if
 present can be "UDP" or "TCP".

While sending the message, this preferred transport will be used and on receiving the controller will be invoked only if the message is received on this transport. Defining controllers can thus control which transport they are bound to. If not present a default transport, based upon the transport selection procedure is assigned to the controller.

[Validate]