sipfsm 0.2.0 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/lib/sipfsm.rb +24 -30
- metadata +30 -21
    
        checksums.yaml
    ADDED
    
    | @@ -0,0 +1,7 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            SHA1:
         | 
| 3 | 
            +
              metadata.gz: f144d93f509d24a49a95d3cff6f70e12196af6f2
         | 
| 4 | 
            +
              data.tar.gz: be57d6f58d3508fc5f92a5abec50b46292e9cdcc
         | 
| 5 | 
            +
            SHA512:
         | 
| 6 | 
            +
              metadata.gz: 30fb284b3536325a2ec85417069d8c414d89d052daeac0533c8f30976b87069665bdf240968984cba66d27cb7bfa8b6702815ac5264b6c44cd7ca61e3167166e
         | 
| 7 | 
            +
              data.tar.gz: ea144ebd378bfb6e2d239d6c36b0d03146afb98f1bb7c77384ceb6f20601b0d72f0cf8405a1a0c8195458fa51c9de555eae1cca5a151bd05efdceb4c4a5bd58a
         | 
    
        data/lib/sipfsm.rb
    CHANGED
    
    | @@ -22,14 +22,15 @@ module SipFSMModule | |
| 22 22 |  | 
| 23 23 | 
             
                # Standard SIP servlet request dispatching
         | 
| 24 24 | 
             
                # is overriden and modified to call the DSL event methods.
         | 
| 25 | 
            +
                # However, if fsm not defined or fsm does not respond to the given SIP request, standard dispatching still works.
         | 
| 25 26 | 
             
                def doRequest(request)
         | 
| 26 27 | 
             
                  m = request.get_method
         | 
| 27 28 | 
             
                  fsmm = "sip#{m}".to_sym
         | 
| 28 | 
            -
                   | 
| 29 | 
            +
                  st = run(request)
         | 
| 29 30 |  | 
| 30 | 
            -
                  if fsm_state_responds_to?  | 
| 31 | 
            +
                  if fsm_state_responds_to? st, fsmm 
         | 
| 31 32 | 
             
                    send(fsmm, request, nil)
         | 
| 32 | 
            -
                  elsif fsm_state_responds_to?  | 
| 33 | 
            +
                  elsif fsm_state_responds_to? st, :sipREQUEST_ANY
         | 
| 33 34 | 
             
                    send(:sipREQUEST_ANY, request, nil)
         | 
| 34 35 | 
             
                  else
         | 
| 35 36 | 
             
                    super 
         | 
| @@ -40,18 +41,18 @@ module SipFSMModule | |
| 40 41 | 
             
                # is overriden and modified to call the DSL event methods.
         | 
| 41 42 | 
             
                def doResponse(response)
         | 
| 42 43 | 
             
                  m = response.get_status.to_s
         | 
| 43 | 
            -
                   | 
| 44 | 
            +
                  st = run(response)
         | 
| 44 45 |  | 
| 45 46 | 
             
                  resp_exact = "sipRESPONSE_#{m}".to_sym
         | 
| 46 47 | 
             
                  resp_group = "sipRESPONSE_#{m[/./].to_s}xx".to_sym
         | 
| 47 48 |  | 
| 48 | 
            -
                  if fsm_state_responds_to?  | 
| 49 | 
            +
                  if fsm_state_responds_to? st, resp_exact 
         | 
| 49 50 | 
             
                    send(resp_exact, nil, response)
         | 
| 50 51 |  | 
| 51 | 
            -
                  elsif fsm_state_responds_to?  | 
| 52 | 
            +
                  elsif fsm_state_responds_to? st, resp_group 
         | 
| 52 53 | 
             
                    send(resp_group, nil, response)
         | 
| 53 54 |  | 
| 54 | 
            -
                  elsif fsm_state_responds_to?  | 
| 55 | 
            +
                  elsif fsm_state_responds_to? st, :sipRESPONSE_ANY
         | 
| 55 56 | 
             
                    send(:sipRESPONSE_ANY, nil, response)
         | 
| 56 57 |  | 
| 57 58 | 
             
                  else
         | 
| @@ -59,6 +60,7 @@ module SipFSMModule | |
| 59 60 | 
             
                  end
         | 
| 60 61 | 
             
                end
         | 
| 61 62 |  | 
| 63 | 
            +
                # CLASS methods ------------------------------------------------------
         | 
| 62 64 | 
             
                # creates and returns INVITE request
         | 
| 63 65 | 
             
                def self.create_request(app_session, method, from, to)
         | 
| 64 66 | 
             
                  sip_factory = $servlet_context.get_attribute('javax.servlet.sip.SipFactory')
         | 
| @@ -109,28 +111,25 @@ module SipFSMModule | |
| 109 111 | 
             
                  FSM_STATE_ATTR
         | 
| 110 112 | 
             
                end
         | 
| 111 113 |  | 
| 112 | 
            -
                def prepare_state_by_req msg
         | 
| 113 | 
            -
                  fsm_prepare_state [msg, nil]
         | 
| 114 | 
            -
                end
         | 
| 115 | 
            -
             | 
| 116 114 | 
             
                private
         | 
| 117 115 | 
             
                ##### Overriden methods (for FSM) ###########################
         | 
| 118 116 |  | 
| 119 117 | 
             
                # Loading and saving application FSM state from application attribute
         | 
| 120 | 
            -
             | 
| 121 | 
            -
             | 
| 122 | 
            -
             | 
| 123 | 
            -
                   | 
| 124 | 
            -
                   | 
| 125 | 
            -
                  s = @app_session.get_attribute(FSM_STATE_ATTR)
         | 
| 126 | 
            -
                  @state = s if s
         | 
| 127 | 
            -
                  s
         | 
| 118 | 
            +
             | 
| 119 | 
            +
                def current_state *sip_msg
         | 
| 120 | 
            +
                  sip_msg.flatten!
         | 
| 121 | 
            +
                  m = sip_msg[0] || sip_msg[1]
         | 
| 122 | 
            +
                  application_session(m).get_attribute(FSM_STATE_ATTR)
         | 
| 128 123 | 
             
                end
         | 
| 129 124 |  | 
| 125 | 
            +
                def set_current_state st, *sip_msg
         | 
| 126 | 
            +
                  application_session(sip_msg).set_attribute(FSM_STATE_ATTR, st)
         | 
| 127 | 
            +
                end
         | 
| 130 128 |  | 
| 131 | 
            -
                def  | 
| 132 | 
            -
                   | 
| 133 | 
            -
                   | 
| 129 | 
            +
                def application_session *sip_msg
         | 
| 130 | 
            +
                  sip_msg.flatten!
         | 
| 131 | 
            +
                  m = sip_msg[0] || sip_msg[1]
         | 
| 132 | 
            +
                  m.get_application_session
         | 
| 134 133 | 
             
                end
         | 
| 135 134 |  | 
| 136 135 | 
             
                ####### Helper methods ###############
         | 
| @@ -144,7 +143,7 @@ module SipFSMModule | |
| 144 143 | 
             
                def method_missing(name, args)
         | 
| 145 144 | 
             
                  if name.to_s =~ /send_response_(.*)/
         | 
| 146 145 | 
             
                    args[0].create_response($1.to_i).send
         | 
| 147 | 
            -
                  elsif name.to_s =~ /is_(.*) | 
| 146 | 
            +
                  elsif name.to_s =~ /is_(.*)\?/
         | 
| 148 147 | 
             
                    args[0].get_method == $1
         | 
| 149 148 | 
             
                  else
         | 
| 150 149 | 
             
                    super
         | 
| @@ -167,12 +166,7 @@ module SipFSMModule | |
| 167 166 |  | 
| 168 167 | 
             
                # creates URI java object using SipFactory
         | 
| 169 168 | 
             
                def create_uri(str_uri)
         | 
| 170 | 
            -
             | 
| 171 | 
            -
                    sipURI = @sip_session.get_servlet_context.get_attribute('javax.servlet.sip.SipFactory').create_uri('sip:' + str_uri)
         | 
| 172 | 
            -
                    sipURI
         | 
| 173 | 
            -
                  else
         | 
| 174 | 
            -
                    nil
         | 
| 175 | 
            -
                  end
         | 
| 169 | 
            +
                    sip_factory.create_uri('sip:' + str_uri)
         | 
| 176 170 | 
             
                end
         | 
| 177 171 |  | 
| 178 172 | 
             
                def get_from_user_address_port(msg)
         | 
| @@ -221,7 +215,7 @@ module SipFSMModule | |
| 221 215 |  | 
| 222 216 | 
             
                def is_UNREGISTER?(args)
         | 
| 223 217 | 
             
                  request = args[0]
         | 
| 224 | 
            -
                  return false unless  | 
| 218 | 
            +
                  return false unless is_REGISTER?(args)
         | 
| 225 219 |  | 
| 226 220 | 
             
                  exp = request.get_header('Expires')
         | 
| 227 221 | 
             
                  if !exp
         | 
    
        metadata
    CHANGED
    
    | @@ -1,34 +1,46 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: sipfsm
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.2. | 
| 5 | 
            -
              prerelease:
         | 
| 4 | 
            +
              version: 0.2.3
         | 
| 6 5 | 
             
            platform: ruby
         | 
| 7 6 | 
             
            authors:
         | 
| 8 7 | 
             
            - Edin Pjanic
         | 
| 9 8 | 
             
            - Amer Hasanovic
         | 
| 10 | 
            -
            autorequire:
         | 
| 9 | 
            +
            autorequire: 
         | 
| 11 10 | 
             
            bindir: bin
         | 
| 12 11 | 
             
            cert_chain: []
         | 
| 13 | 
            -
            date:  | 
| 12 | 
            +
            date: 2017-04-17 00:00:00.000000000 Z
         | 
| 14 13 | 
             
            dependencies:
         | 
| 15 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 16 15 | 
             
              name: simplefsm
         | 
| 16 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 17 | 
            +
                requirements:
         | 
| 18 | 
            +
                - - "~>"
         | 
| 19 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 20 | 
            +
                    version: 0.2.3
         | 
| 21 | 
            +
              type: :runtime
         | 
| 22 | 
            +
              prerelease: false
         | 
| 17 23 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 18 24 | 
             
                requirements:
         | 
| 19 25 | 
             
                - - "~>"
         | 
| 20 26 | 
             
                  - !ruby/object:Gem::Version
         | 
| 21 | 
            -
                    version:  | 
| 22 | 
            -
             | 
| 27 | 
            +
                    version: 0.2.3
         | 
| 28 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 29 | 
            +
              name: jrubycipango
         | 
| 23 30 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 24 31 | 
             
                requirements:
         | 
| 25 32 | 
             
                - - "~>"
         | 
| 26 33 | 
             
                  - !ruby/object:Gem::Version
         | 
| 27 | 
            -
                    version:  | 
| 28 | 
            -
                none: false
         | 
| 29 | 
            -
              prerelease: false
         | 
| 34 | 
            +
                    version: 0.2.11
         | 
| 30 35 | 
             
              type: :runtime
         | 
| 31 | 
            -
             | 
| 36 | 
            +
              prerelease: false
         | 
| 37 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 38 | 
            +
                requirements:
         | 
| 39 | 
            +
                - - "~>"
         | 
| 40 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 41 | 
            +
                    version: 0.2.11
         | 
| 42 | 
            +
            description: SIP application development in Ruby using SimpleFSM, a simple and lightweight
         | 
| 43 | 
            +
              domain specific language (DSL).
         | 
| 32 44 | 
             
            email:
         | 
| 33 45 | 
             
            - edin@ictlab.com.ba
         | 
| 34 46 | 
             
            - amer@ictlab.com.ba
         | 
| @@ -39,7 +51,8 @@ files: | |
| 39 51 | 
             
            - lib/sipfsm.rb
         | 
| 40 52 | 
             
            homepage: http://github.com/edictlab/SipFSM
         | 
| 41 53 | 
             
            licenses: []
         | 
| 42 | 
            -
             | 
| 54 | 
            +
            metadata: {}
         | 
| 55 | 
            +
            post_install_message: 
         | 
| 43 56 | 
             
            rdoc_options: []
         | 
| 44 57 | 
             
            require_paths:
         | 
| 45 58 | 
             
            - lib
         | 
| @@ -47,20 +60,16 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 47 60 | 
             
              requirements:
         | 
| 48 61 | 
             
              - - ">="
         | 
| 49 62 | 
             
                - !ruby/object:Gem::Version
         | 
| 50 | 
            -
                  version:  | 
| 51 | 
            -
                    MA==
         | 
| 52 | 
            -
              none: false
         | 
| 63 | 
            +
                  version: '0'
         | 
| 53 64 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 54 65 | 
             
              requirements:
         | 
| 55 66 | 
             
              - - ">="
         | 
| 56 67 | 
             
                - !ruby/object:Gem::Version
         | 
| 57 | 
            -
                  version:  | 
| 58 | 
            -
                    MA==
         | 
| 59 | 
            -
              none: false
         | 
| 68 | 
            +
                  version: '0'
         | 
| 60 69 | 
             
            requirements: []
         | 
| 61 | 
            -
            rubyforge_project:
         | 
| 62 | 
            -
            rubygems_version:  | 
| 63 | 
            -
            signing_key:
         | 
| 64 | 
            -
            specification_version:  | 
| 70 | 
            +
            rubyforge_project: 
         | 
| 71 | 
            +
            rubygems_version: 2.5.1
         | 
| 72 | 
            +
            signing_key: 
         | 
| 73 | 
            +
            specification_version: 4
         | 
| 65 74 | 
             
            summary: SipFSM - SIP application development in Ruby
         | 
| 66 75 | 
             
            test_files: []
         |