Cljain 0.6.0-Alpha1 API documentation
Enjoy JAIN-SIP in Clojure's way.
cljain.dum
Here is a simplest example show how to use it:
(use 'cljain.dum)
(require '[cljain.sip.core :as sip]
'[cljain.sip.address :as addr])
(defmethod handle-request :MESSAGE [request transaction _]
(println "Received: " (.getContent request))
(send-response! 200 :in transaction :pack "I receive the message from myself."))
(global-set-account {:user "bob" :domain "localhost" :display-name "Bob" :password "thepwd"})
(sip/global-bind-sip-provider! (sip/sip-provider! "my-app" "localhost" 5060 "udp"))
(sip/set-listener! (dum-listener))
(sip/start!)
(send-request! :MESSAGE :to (addr/address "sip:bob@localhost") :pack "Hello, Bob."
:on-success (fn [& {:keys [response]}]
(println "Fine! response: " (.getContent response)))
:on-failure (fn [& {:keys [response]}]
(println "Oops!" (.getStatusCode response)))
:on-timeout (fn [& _]
(println "Timeout, try it later.")))
Remember, if you want to send REGISTER request, prefer to use the 'register-to!' function, it will
help you to deal the automatic rigister refresh:
(register-to! (addr/address "sip:the-registry") 3600
:on-success (fn [response]
(prn "Register success."))
:on-failure (fn [response]
(prn "Register failed."))
:on-refreshed (fn [response]
(prn "Refreshed fine."))
:on-refresh-failed (fn [response]
(prn "Refresh failed.")))
This version cljain.dum has some limitation that if you want auto-refresh work correctly, you must use
'global-set-account' to give a root binding with *current-account* like previous.cljain.sip.core
Public variables and functions:
- *sip-provider*
- already-bound-provider?
- dialog?
- gen-call-id-header
- global-bind-sip-provider!
- global-unbind-sip-provider!
- listening-point
- new-client-transcation!
- new-dialog!
- new-server-transaction!
- provider-can-be-found?
- send-request!
- set-listener!
- sip-factory
- sip-provider
- sip-provider!
- sip-stack
- stack-name
- start!
- stop-and-release!
- transaction?
cljain.sip.header
Public variables and functions:
- accept
- accept-encoding
- accept-language
- alert-info
- allow
- allow-events
- authentication-info
- authorization
- call-id
- call-info
- contact
- content-disposition
- content-encoding
- content-language
- content-length
- content-type
- cseq
- date
- defheader
- error-info
- event
- expires
- extension
- from
- gen-branch
- gen-tag
- header?
- in-reply-to
- max-forwards
- mime-version
- min-expires
- organization
- priority
- proxy-authenticate
- proxy-authorization
- proxy-require
- r-ack
- r-seq
- reason
- record-route
- refer-to
- reply-to
- require
- retry-after
- route
- server
- sip-etag
- sip-if-match
- subject
- subscription-state
- supported
- time-stamp
- to
- unsupported
- user-agent
- via
- warning
- wildcard-contact
- www-authenticate
cljain.sip.message
Public variables and functions: