WO2012164830A1 - 通信制御装置 - Google Patents

通信制御装置 Download PDF

Info

Publication number
WO2012164830A1
WO2012164830A1 PCT/JP2012/003014 JP2012003014W WO2012164830A1 WO 2012164830 A1 WO2012164830 A1 WO 2012164830A1 JP 2012003014 W JP2012003014 W JP 2012003014W WO 2012164830 A1 WO2012164830 A1 WO 2012164830A1
Authority
WO
WIPO (PCT)
Prior art keywords
sequence
communication control
communication
control device
information
Prior art date
Application number
PCT/JP2012/003014
Other languages
English (en)
French (fr)
Inventor
真吾 牧村
剛志 渡邉
智基 村上
厚志 橋口
栗原 浩
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to US14/122,220 priority Critical patent/US20140101224A1/en
Priority to JP2013517834A priority patent/JP5668846B2/ja
Priority to CN201280026649.XA priority patent/CN103609086B/zh
Priority to EP12792885.1A priority patent/EP2717521A4/en
Publication of WO2012164830A1 publication Critical patent/WO2012164830A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/1045Proxies, e.g. for session initiation protocol [SIP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/1046Call controllers; Call servers

Definitions

  • the present invention relates to a communication control apparatus that establishes a session with a communication apparatus by executing a sequence including a plurality of communication events.
  • a communication control device that establishes a session with a communication device by executing a sequence including a plurality of communication events is known.
  • the communication control device described in Patent Document 1 is associated with communication destination specifying information for specifying a communication destination, is associated with a type of response from the communication destination, and Scenario information including transfer destination specifying information for specifying a transfer destination is received.
  • the communication control device When the communication control device receives a message for establishing a session with the communication destination specified by the communication destination specifying information, the communication control device acquires a response of the communication destination and associates it with the response type. The message is transferred to the transfer destination specified by the specified transfer destination specifying information. In this way, the communication control device executes a sequence based on the accepted scenario information.
  • media information for example, information described in accordance with SDP (Session Description Protocol), etc.
  • SDP Session Description Protocol
  • Patent Document 1 has a problem that synchronization between a plurality of sequences cannot be controlled based on scenario information.
  • an object of the present invention is to provide a communication control apparatus capable of solving the above-described problem that “the synchronization between a plurality of sequences cannot be controlled based on the scenario information”.
  • a communication control apparatus In order to achieve such an object, a communication control apparatus according to one aspect of the present invention is provided.
  • a device that establishes a session with a communication device by executing a sequence of a plurality of communication events that are sequentially executed one by one.
  • this communication control device Whether to synchronize the first sequence that is a sequence to be newly executed and the second sequence that is another sequence that is associated with the communication event and instructed to newly execute the sequence Scenario information receiving means for receiving scenario information including sequence execution instruction information including synchronization information indicating When the communication event associated with the sequence execution instruction information included in the received scenario information is executed while the sequence is executed, the synchronization information included in the sequence execution instruction information Scenario execution means for newly executing a sequence based on Is provided.
  • a communication control method includes: In this method, a session is established with a communication device by executing a sequence of a plurality of communication events that are sequentially executed one by one.
  • this communication control method Whether to synchronize the first sequence that is a sequence to be newly executed and the second sequence that is another sequence that is associated with the communication event and instructed to newly execute the sequence Accept scenario information including sequence execution instruction information including synchronization information indicating When the communication event associated with the sequence execution instruction information included in the received scenario information is executed while the sequence is executed, the synchronization information included in the sequence execution instruction information This is a method for newly executing a sequence based on the above.
  • a communication control program is A communication control device that establishes a session with a communication device by executing a sequence of a plurality of communication events that are sequentially executed one by one. Whether to synchronize the first sequence that is a sequence to be newly executed and the second sequence that is another sequence that is associated with the communication event and instructed to newly execute the sequence Accept scenario information including sequence execution instruction information including synchronization information indicating When the communication event associated with the sequence execution instruction information included in the received scenario information is executed while the sequence is executed, the synchronization information included in the sequence execution instruction information Is a program for executing a process that newly executes a sequence based on the above.
  • the present invention is configured as described above, and can control synchronization between a plurality of sequences based on scenario information.
  • 1 is a diagram illustrating a schematic configuration of a communication system according to a first embodiment of the present invention. It is the sequence diagram which showed an example of the sequence performed in order to establish a session between the 1st apparatus and the 2nd apparatus in the communication system which concerns on 1st Embodiment of this invention. It is a block diagram showing the function of the communication control apparatus which concerns on 1st Embodiment of this invention. It is the figure which showed an example of the scenario information which concerns on 1st Embodiment of this invention. It is the figure which showed an example of the scenario information which concerns on 1st Embodiment of this invention. It is the figure which showed an example of the scenario information which concerns on 1st Embodiment of this invention. It is the figure which showed an example of the scenario information which concerns on 1st Embodiment of this invention.
  • the communication system 1 includes an application server 10, a communication control device 20, and a plurality of user terminals 31, 32,.
  • the application server 10 and the communication control device 20 are connected so as to communicate with each other.
  • the communication control device 20 and each of the plurality of user terminals 31, 32,... are connected to each other via a communication network (in this example, a SIP (Session Initiation Protocol) network) NW.
  • a communication network in this example, a SIP (Session Initiation Protocol) network
  • NW is composed of a plurality of server devices (in this example, SIP servers) connected to be communicable with each other.
  • the application server 10 is an information processing apparatus.
  • the application server 10 includes a central processing unit (CPU; Central Processing Unit) (not shown) and a storage device (memory and hard disk drive (HDD)).
  • the application server 10 is configured to realize functions to be described later when the CPU executes a program stored in the storage device.
  • the communication control device 20 is an information processing device.
  • the communication control device 20 includes a CPU (not shown), a storage device (memory and HDD), an input device (in this example, a keyboard and a mouse), and an output device (in this example, a display).
  • the communication control device 20 is configured to realize functions to be described later when the CPU executes a program stored in the storage device.
  • Each user terminal 31, 32, ... is a mobile phone terminal.
  • Each of the user terminals 31, 32,... Is a fixed telephone, personal computer, PHS (Personal Handyphone System), PDA (Personal Data Assistant, Personal Digital Assistant), smartphone, car navigation terminal, or game terminal. May be.
  • Each user terminal 31, 32, ... includes a CPU, a storage device (memory), an input device (in this example, a key), and an output device (in this example, a display) (not shown).
  • a CPU central processing unit
  • storage device memory
  • input device in this example, a key
  • output device in this example, a display
  • Each of the user terminals 31, 32,... Is configured to realize a function to be described later when the CPU executes a program stored in the storage device.
  • Each of the application server 10, the communication control device 20, and the plurality of user terminals 31, 32,... has a function of executing a communication event.
  • the communication event is a message transmission or reception according to SIP.
  • the application server 10 and the communication control device 20 execute a sequence including a plurality of communication events that are sequentially executed one by one, so that the application server 10 as the communication device and the communication control device 20 are connected. Establish a session.
  • the user terminal 31 and the communication control device 20 execute a sequence including a plurality of communication events that are sequentially executed one by one, so that the user terminal 31 as the communication device and the communication control device 20 are connected. Establish a session with.
  • the other user terminals 32 have the same functions as the user terminal 31.
  • a session is established between the first device and the second device by sequentially executing the communication events of steps S101 to S104.
  • the first device transmits an INVITE message (a message in which “INVITE” is set as a method) of the SIP messages to the second device (step S101).
  • the second device sends an 18x message of the SIP message to the first device (response including “18x” as a status code in the start line, where “x” is an integer from 0 to 9). Is transmitted (step S102).
  • the second device transmits 200 messages (responses including “200” and “OK” as the status codes in the start line) of the SIP messages to the first device (step S103). .
  • the first device transmits an ACK message (a message in which “ACK” is set as a method) among the SIP messages to the second device (step S104). In this way, a session is established between the first device and the second device.
  • the first device and the second device communicate using the established session. Thereafter, the first device transmits a BYE message (a message in which “BYE” is set as a method) of the SIP messages to the second device (step S105).
  • a BYE message (a message in which “BYE” is set as a method) of the SIP messages to the second device (step S105).
  • the second device transmits 200 messages among the SIP messages to the first device (step S106). In this way, the session established between the first device and the second device is terminated. Note that the second device may transmit a BYE message to the first device.
  • the functions of the communication control device 20 include a scenario information receiving unit (scenario information receiving unit) 21 and a scenario executing unit (scenario executing unit) 22 as shown in FIG.
  • the scenario information receiving unit 21 receives scenario information input by the user via the input device.
  • the scenario information receiving unit 21 may be configured to receive scenario information from another device and receive the received scenario information. Further, the scenario information receiving unit 21 may be configured to store the scenario information in a storage device in advance, and to read the read scenario information by reading the stored scenario information. In this example, the scenario information receiving unit 21 stores the received scenario information in the storage device.
  • scenario information is information described in accordance with XML (Extensible Markup Language).
  • the scenario information may be information described according to a format other than XML.
  • the name of the element in this example is an example. That is, a name other than the name shown in this example may be used as the element name.
  • Scenario information includes sequence execution instruction information.
  • the sequence execution instruction information is information associated with a communication event (hereinafter also simply referred to as “event”). Furthermore, the sequence execution instruction information is information for instructing to newly execute a sequence. In addition, the sequence execution instruction information includes synchronization information.
  • the synchronization information is information indicating whether or not to synchronize the first sequence that is the newly executed sequence and the second sequence that is another sequence.
  • scenario information as shown in FIG. 4, “normal0” is set as the value of the attribute “scenarioname” of the element “scenario”.
  • the value of the attribute “scenarioname” represents the name of the scenario.
  • rcv1stINV is set as the value of the attribute “eventname” of the child element “event” of the element “scenario”.
  • the element “event” represents an operation for the event that has occurred.
  • the value of the attribute “eventname” is information for specifying an event.
  • “Rcv” represents reception
  • “1st” represents the first
  • “INV” represents the INVITE message. That is, “rcv1stINV” represents an event as reception of the first INVITE message.
  • actionX (X is an integer of 1 or more, where X is 1) of the element “event” represents processing in the event.
  • X represents the order of processing, and represents that processing is performed earlier as X becomes smaller. In other words, processes to which the same X is assigned are executed asynchronously.
  • “snd1stINV” is set as the value of the attribute “callname” of the child element “newcall” of the element “action1”.
  • the element “newcall” indicates that a sequence for establishing a session is newly executed.
  • the value of the attribute “callname” represents the name of the sequence.
  • rcv1stINV is set as the value of the attribute “sync” of the child element “callpt” of the element “newcall”.
  • the element “callopt” represents an option (additional information) when a sequence is newly executed.
  • the value of the attribute “sync” is information for specifying a sequence to be synchronized.
  • the value of the attribute “eventname”, the value of the attribute “callname”, or “none” is set as the value of the attribute “sync”.
  • the value of the attribute “sync” indicates that when the value of the attribute “eventname” or the value of the attribute “callname” is set, the attribute “syncname” is synchronized with the sequence specified by the value.
  • the value of the attribute “sync” represents that when “none” is set, synchronization with other sequences is not performed.
  • the element “newcall” constitutes sequence execution instruction information.
  • the value of the attribute “sync” of the element “callopt” constitutes synchronization information.
  • the value of the attribute “eventname” of the element “event” including the element “newcall” as an element constitutes information for specifying an event associated with the sequence execution instruction information.
  • the scenario execution unit 22 synchronizes the first sequence and the second sequence
  • the remaining communication events in the second sequence after the start of the execution of the first sequence are performed. Are executed immediately after executing the corresponding communication event in the first sequence.
  • the scenario execution unit 22 when the scenario execution unit 22 synchronizes the first sequence and the second sequence, the scenario execution unit 22 establishes the first session established by the first sequence and the second sequence. When one of the second sessions to be completed is terminated, the other is also terminated.
  • FIG. 5 shows another example of scenario information.
  • the element “scenario” includes two child elements “event”.
  • the scenario information may include a plurality of elements “event”.
  • FIG. 6 shows another example of scenario information.
  • the element “newcall” includes a child element “eventnotify”.
  • “200 ok” is set as the value of the attribute “sipevent” of the element “eventnotify”.
  • rcv200_snd1stINV is set as the value of the attribute “eventname” of the element “eventnotify”.
  • the element “eventnotify” instructs to execute the event specified by the value of the attribute “eventname” when the event specified by the value of the attribute “shipevent” occurs (executed).
  • the element “eventnotify” represents that an event specified by “rcv200_snd1stINV” is executed when a 200 message is received.
  • guidance 1 is set as the value of the attribute “RURIheader” of the element “newcall”.
  • the value of the attribute “RURIheader” represents a RURI (Request Uniform Resource Identifier) header of a newly executed sequence.
  • FIG. 7 shows another example of scenario information.
  • the element “event” includes a child element “if”.
  • the element “if” includes a child element “condition”, a child element “exec”, and a child element “else”.
  • Header is set as the value of the attribute “type” of the element “condition”.
  • the element “condition” includes a child element “conditionopt”.
  • X-Service-Name is set as the value of the attribute “header” of the element “conditionopt”.
  • AnsMachine is set as the value of the attribute “value” of the element “conditionopt”.
  • Action1 is set as the value of the attribute “name” of the element “exec”.
  • the element “if” represents whether or not the information specified by the value of the attribute “type” of the element “condition” satisfies the condition defined by the element “conditionopt”. Further, the element “if” executes the process specified by the element “exec” when the information satisfies the condition, and the process specified by the element “else” when the information does not satisfy the condition. Represents executing.
  • the element “if” executes the process specified by “action 1” when the value of “X-Service-Name” in the header included in the received message is “AnsMachine”. When the value is not “AnsMachine”, it indicates that no processing is executed.
  • the element “action1” includes a child element “releasesec” and a child element “updatecall”.
  • “snd1stINV” is set as the value of the attribute “name” of the element “releasesecall”.
  • disable is set as the value of the attribute “sync” of the child element “releaseopt” of the element “releasesecall”.
  • Element “releasesecall” indicates that the session established by the sequence specified by the value of attribute “name” is to be terminated. At this time, when the element “releasesec” is set to “disable” as the value of the attribute “sync” of the element “releaseopt”, even if there is a sequence synchronized with the sequence related to the session to be terminated, The session related to the sequence is not terminated.
  • the value of the attribute “sync” of the element “releaseopt” constitutes the synchronization cancellation instruction information that instructs to cancel the synchronization of the first sequence and the second sequence. Further, the value of the attribute “eventname” of the element “event” including the element “releaseopt” as an element constitutes information for specifying an event associated with the synchronization release instruction information.
  • rcv1stINV is set as the value of the attribute “name” of the element “updatecall”.
  • nd2ndINV is set as the value of the attribute “sync” of the child element “updatecalllot” of the element “updatecall”.
  • the element “updatecall” instructs to synchronize the sequence specified by the value of the attribute “name” and the sequence specified by the value of the attribute “sync” of the element “updatecalllot”.
  • the value of the attribute “sync” of the element “updatecalllot” constitutes synchronization setting instruction information that instructs to synchronize the first sequence and the second sequence. Furthermore, the value of the attribute “eventname” of the element “event” including the element “updatecall” as an element constitutes information for specifying an event associated with the synchronization setting instruction information.
  • the scenario execution unit 22 executes a sequence based on the scenario information received by the scenario information reception unit 21.
  • the scenario execution unit 22 selects one scenario information from the scenario information stored in the storage device.
  • the scenario execution unit 22 selects scenario information based on information (such as a transmission destination address and a transmission source address) included in the received message, a date and time when the message is received, and the like.
  • the scenario execution unit 22 parses the scenario information (analyzes the syntax of the scenario information). Then, the scenario execution unit 22 executes a certain sequence. Further, the scenario execution unit 22 waits until an event associated with the process in the scenario information is executed. Then, when the event is executed during the execution of the sequence, the scenario execution unit 22 executes a process associated with the event.
  • the scenario executing unit 22 executes an event associated with the sequence execution instruction information included in the scenario information received by the scenario information receiving unit 21 during execution of the sequence.
  • a sequence (first sequence) is newly executed based on the synchronization information included in the sequence execution instruction information.
  • the scenario execution unit 22 performs the remaining of the second sequence after the start of the execution of the first sequence.
  • Each communication event is executed immediately after executing the corresponding communication event in the first sequence.
  • the scenario execution unit 22 performs the remaining of the second sequence after the start of the execution of the first sequence.
  • Each communication event may be configured to be executed substantially simultaneously (for example, immediately before or simultaneously) with the time when the corresponding communication event in the first sequence is executed.
  • the scenario execution unit 22 includes the first session established by the first sequence, and the second When one of the second sessions established by the sequence ends, the other ends.
  • the scenario execution unit 22 synchronizes the media information when the synchronization information indicates that the first sequence and the second sequence are synchronized. Specifically, in one of the first sequence and the second sequence, the scenario execution unit 22 receives the first media information received from the first communication device that is the communication device of the communication destination, and the first sequence. In the other of the second sequences, when the second media information transmitted to the second communication device that is the communication device of the communication destination is different, the first media information is retransmitted to the second communication device. Send.
  • the scenario execution unit 22 performs the first operation after the time point when the communication event associated with the synchronization release instruction information included in the scenario information received by the scenario information reception unit 21 is executed.
  • the synchronization of the second sequence and the second sequence is released.
  • scenario execution unit 22 performs the first operation after the time point when the communication event associated with the synchronization setting instruction information included in the scenario information received by the scenario information reception unit 21 is executed during the execution of the sequence. Synchronize the sequence and the second sequence.
  • the communication control device 20 receives the first INVITE message. That is, the communication control apparatus 20 executes sequence # 1 for establishing a session with the user terminal 31. In addition, the communication control device 20 detects that an event (that is, reception of the first INVITE message) specified by the value “rcv1stINV” of the attribute “eventname” of the element “event” is executed.
  • the communication control device 20 newly executes a sequence # 2 for establishing a session with the application server 10.
  • this newly executed sequence is a sequence specified by “snd1stINV”.
  • the communication control device 20 is specified by the newly executed sequence # 2 (first sequence) and the sequence # 1 for establishing a session with the user terminal 31 (that is, “rcv1stINV”). And the second sequence).
  • the communication control device 20 uses the remaining communication events in the second sequence (in this example, transmission of 18x messages and transmission of 200 messages) as corresponding communication events in the first sequence. (In this example, 18x message reception and 200 message reception) are executed immediately after execution.
  • the communication control device 20 executes transmission of the ACK message in the first sequence immediately after executing the corresponding communication event (here, reception of the ACK message) in the second sequence.
  • the communication control device 20 transmits an INVITE message to the application server 10 (step S202).
  • the application server 10 transmits an 18x message to the communication control apparatus 20 (step S203).
  • the communication control apparatus 20 will transmit an 18x message to the user terminal 31, if an 18x message is received from the application server 10 (step S204). That is, it can be said that the communication control apparatus 20 waits for the execution of the next event in the second sequence until the corresponding event in the first sequence is executed.
  • the application server 10 transmits a 200 message to the communication control device 20 (step S205). Then, when receiving the 200 message from the application server 10, the communication control device 20 transmits the 200 message to the user terminal 31 (step S206).
  • the user terminal 31 transmits an ACK message to the communication control device 20 (step S207). Thereby, the session between the user terminal 31 and the communication control apparatus 20 is established.
  • the communication control device 20 transmits an ACK message to the application server 10 (step S208). Thereby, the session between the application server 10 and the communication control apparatus 20 is established.
  • the user terminal 31 transmits a BYE message to the communication control apparatus 20 (step S209).
  • the communication control device 20 transmits the BYE message to the application server 10 (step S210).
  • the communication control apparatus 20 transmits a 200 message to the user terminal 31 (step S211). Thereby, the session between the user terminal 31 and the communication control apparatus 20 is complete
  • the application server 10 transmits a 200 message to the communication control device 20 (step S212). Thereby, the session between the application server 10 and the communication control apparatus 20 is also terminated.
  • the communication control device 20 also ends the first session established by the first sequence.
  • the communication control device 20 selects the scenario information shown in FIG.
  • the user terminal (first user terminal) 31 transmits an INVITE message to the communication control apparatus 20 (step S301).
  • the communication control device 20 receives the first INVITE message. That is, the communication control apparatus 20 executes sequence # 1 for establishing a session with the first user terminal 31. In addition, the communication control device 20 detects that an event (that is, reception of the first INVITE message) specified by the value “rcv1stINV” of the attribute “eventname” of the element “event” is executed.
  • the communication control device 20 newly executes a sequence # 2 for establishing a session with the application server 10.
  • this newly executed sequence is a sequence specified by “snd1stINV”.
  • the communication control apparatus 20 establishes a session between the newly executed sequence # 2 (first sequence) and the first user terminal 31 (that is, “rcv1stINV”). Are synchronized with the second sequence).
  • the communication control device 20 transmits an INVITE message to the application server 10 (step S302).
  • the application server 10 transmits an 18x message to the communication control apparatus 20 (step S303).
  • the communication control apparatus 20 will transmit an 18x message to the user terminal 31, if an 18x message is received from the application server 10 (step S304).
  • the application server 10 transmits an INVITE message to the communication control apparatus 20 in order to newly establish a session with the communication control apparatus 20 (step S305).
  • the communication control device 20 receives the second INVITE message. That is, the communication control device 20 executes sequence # 3 for establishing a session with the application server 10. In addition, the communication control device 20 detects that an event (that is, reception of the second INVITE message) specified by the value “rcv2ndINV” of the attribute “eventname” of the element “event” is executed.
  • the communication control device 20 newly executes a sequence # 4 for establishing a session with the second user terminal 32.
  • this newly executed sequence is a sequence specified by “snd2ndINV”.
  • the communication control device 20 is identified by the newly executed sequence # 4 (first sequence) and the sequence # 3 (ie, “rcv2ndINV”) for establishing a session with the application server 10. And the second sequence).
  • the communication control device 20 transmits an INVITE message to the second user terminal 32 (step S306).
  • the 2nd user terminal 32 transmits an 18x message to the communication control apparatus 20 (step S307).
  • the communication control apparatus 20 will transmit an 18x message to the application server 10, if an 18x message is received from the 2nd user terminal 32 (step S308).
  • the second user terminal 32 transmits a 200 message for the INVITE message received in step S306 to the communication control apparatus 20 (step S309). And the communication control apparatus 20 will transmit the 200 message with respect to the INVITE message received in step S305 to the application server 10, if the 200 message is received from the 2nd user terminal 32 (step S310).
  • the application server 10 transmits an ACK message to the communication control device 20 (step S311). Thereby, the session between the application server 10 and the communication control apparatus 20 is established.
  • the communication control device 20 transmits an ACK message to the second user terminal 32 (step S312). Thereby, the session between the 2nd user terminal 32 and the communication control apparatus 20 is established.
  • the application server 10 transmits a 200 message corresponding to the INVITE message received in step S302 to the communication control apparatus 20 (step S313).
  • the communication control apparatus 20 will transmit the 200 message with respect to the INVITE message received in step S301 to the 1st user terminal 31, if the 200 message is received from the application server 10 (step S314).
  • the first user terminal 31 transmits an ACK message to the communication control device 20 (step S315). Thereby, the session between the 1st user terminal 31 and the communication control apparatus 20 is established.
  • the communication control device 20 transmits an ACK message to the application server 10 (step S316). Thereby, the session between the application server 10 and the communication control apparatus 20 is established.
  • the second user terminal 32 transmits a BYE message to the communication control device 20 (step S317).
  • the communication control device 20 transmits the BYE message to the application server 10 (step S318).
  • the communication control device 20 transmits a BYE message to the first user terminal 31 (step S319). Further, the application server 10 transmits a BYE message to the communication control device 20 (step S320).
  • the first user terminal 31 transmits a 200 message corresponding to the BYE message received in step S319 to the communication control device 20 (step S321). Thereby, the session (session established by performing sequence # 1) between the first user terminal 31 and the communication control device 20 is terminated.
  • the communication control device 20 transmits a 200 message corresponding to the BYE message received in step S320 to the application server 10 (step S322). Thereby, the session between the application server 10 and the communication control device 20 (the session established by executing the sequence # 2) ends.
  • the application server 10 transmits a 200 message corresponding to the BYE message received in step S318 to the communication control apparatus 20 (step S323). Thereby, the session between the application server 10 and the communication control device 20 (the session established by executing the sequence # 3) is terminated.
  • the communication control device 20 transmits a 200 message for the BYE message received in step S317 to the second user terminal 32 (step S324). Thereby, the session (session established by executing sequence # 4) between the second user terminal 32 and the communication control device 20 is terminated.
  • the communication control device 20 selects the scenario information shown in FIG.
  • the user terminal (first user terminal) 31 transmits an INVITE message to the communication control apparatus 20 (step S401).
  • this INVITE message includes the media information “A” set for the first user terminal 31.
  • the media information is information described in accordance with SDP (Session Description Protocol).
  • the communication control device 20 receives the first INVITE message. That is, the communication control apparatus 20 executes sequence # 1 for establishing a session with the first user terminal 31. In addition, the communication control device 20 detects that an event (that is, reception of the first INVITE message) specified by the value “rcv1stINV” of the attribute “eventname” of the element “event” is executed.
  • the communication control device 20 newly executes a sequence # 2 for establishing a session with the application server 10.
  • this newly executed sequence is a sequence specified by “snd1stINV”.
  • the communication control apparatus 20 establishes a session between the newly executed sequence # 2 (first sequence) and the first user terminal 31 (that is, “rcv1stINV”). Are not synchronized with the sequence specified by (2).
  • the communication control device 20 transmits an INVITE message to the application server 10 (step S402).
  • the INVITE message includes empty media information “”.
  • this 18x message includes the media information “MB” set for the application server 10.
  • the application server 10 transmits a 200 message corresponding to the INVITE message received in step S402 to the communication control apparatus 20 (step S404).
  • the communication control device 20 receives the 200 message in the sequence specified by the value “snd1stINV” of the attribute “callname” of the element “newcall”. In other words, the communication control device 20 detects that an event (that is, reception of 200 messages) specified by the value “200 ok” of the attribute “sipevent” of the element “eventnotify” has been executed.
  • the communication control device 20 transmits an ACK message to the application server 10 (step S405). Thereby, the session between the application server 10 and the communication control apparatus 20 is established.
  • the communication control apparatus 20 newly executes a sequence # 4 for establishing a session with the second user terminal 32.
  • this newly executed sequence is a sequence specified by “snd2ndINV”.
  • the communication control device 20 specifies the newly executed sequence # 4 (first sequence) and the sequence # 2 for establishing a session with the application server 10 (ie, “snd1stINV”). And the second sequence).
  • the communication control device 20 transmits an INVITE message to the second user terminal 32 (step S406).
  • the INVITE message includes the media information “MB” included in the 18x message received in step S403.
  • the second user terminal 32 transmits the 18x message to the communication control device 20 (step S407).
  • the INVITE message includes the media information “B” set for the second user terminal 32.
  • the second user terminal 32 transmits a 200 message for the INVITE message received in step S406 to the communication control apparatus 20 (step S408).
  • the communication control device 20 receives the media information (first media information) received from the second user terminal 32 (the first communication device that is the communication device of the communication destination) in sequence # 4 (first sequence). In the sequence # 2 (second sequence), the media information (second media information) transmitted to the application server 10 (second communication device that is the communication device of the communication destination) is the same. Determine whether.
  • the first media information is “B”
  • the second media information is empty information. Therefore, the communication control device 20 determines that the first media information and the second media information are different. Thereby, the communication control device 20 retransmits the first media information to the application server 10 (second communication device).
  • the communication control device 20 transmits a reINVITE message (a message in which “INVITE” is set as a method) to the application server 10 (step S409).
  • the reINVITE message includes the media information “B” included in the 18x message received in step S407.
  • the application server 10 transmits a 200 message corresponding to the reINVITE message received in step S409 to the communication control apparatus 20 (step S410).
  • the communication control device 20 transmits an ACK message to the application server 10 (step S411). Thereby, the session between the application server 10 and the communication control apparatus 20 is established.
  • the communication control device 20 transmits an ACK message to the second user terminal 32 (step S412). Thereby, the session between the 2nd user terminal 32 and the communication control apparatus 20 is established.
  • the communication control apparatus 20 newly executes a sequence # 3 for establishing a session with the application server 10.
  • the newly executed sequence is a sequence specified by “snd3rdINV”.
  • the communication control device 20 establishes a session between the newly executed sequence # 3 (first sequence) and the first user terminal 31 (that is, “rcv1stINV”). Are synchronized with the second sequence).
  • the communication control device 20 transmits an INVITE message to the application server 10 (step S413).
  • the INVITE message includes the media information “A” included in the INVITE message received in step S401.
  • the application server 10 transmits an 18x message to the communication control device 20 (step S414).
  • the INVITE message includes the media information “MB” set for the application server 10.
  • the communication control apparatus 20 will transmit an 18x message to the 1st user terminal 31, if an 18x message is received from the application server 10 (step S415).
  • the INVITE message includes the media information “MB” received in step S416.
  • the application server 10 transmits a 200 message corresponding to the INVITE message received in step S413 to the communication control device 20 (step S416). And the communication control apparatus 20 will transmit the 200 message with respect to the INVITE message received in step S401 to the 1st user terminal 31, if the 200 message is received from the application server 10 (step S417).
  • the first user terminal 31 transmits an ACK message to the communication control device 20 (step S418). Thereby, the session between the 1st user terminal 31 and the communication control apparatus 20 is established.
  • the communication control device 20 transmits an ACK message to the application server 10 (step S419). Thereby, the session between the application server 10 and the communication control apparatus 20 is established.
  • the communication control device 20 selects the scenario information shown in FIG.
  • the user terminal (first user terminal) 31 transmits an INVITE message to the communication control apparatus 20 (step S501).
  • the communication control device 20 receives the first INVITE message. That is, the communication control apparatus 20 executes sequence # 1 for establishing a session with the first user terminal 31. In addition, the communication control device 20 detects that an event (that is, reception of the first INVITE message) specified by the value “rcv1stINV” of the attribute “eventname” of the element “event” is executed.
  • the communication control device 20 newly executes a sequence # 2 for establishing a session with the application server 10.
  • this newly executed sequence is a sequence specified by “snd1stINV”.
  • the communication control apparatus 20 establishes a session between the newly executed sequence # 2 (first sequence) and the first user terminal 31 (that is, “rcv1stINV”). Are synchronized with the second sequence).
  • the communication control device 20 transmits an INVITE message to the application server 10 (step S502).
  • the application server 10 transmits an INVITE message to the communication control apparatus 20 in order to newly establish a session with the communication control apparatus 20 (step S503).
  • the communication control device 20 receives the second INVITE message. That is, the communication control device 20 executes sequence # 3 for establishing a session with the application server 10. In addition, the communication control device 20 detects that an event (that is, reception of the second INVITE message) specified by the value “rcv2ndINV” of the attribute “eventname” of the element “event” is executed.
  • the communication control device 20 newly executes a sequence # 4 for establishing a session with the second user terminal 32.
  • this newly executed sequence is a sequence specified by “snd2ndINV”.
  • the communication control device 20 is identified by the newly executed sequence # 4 (first sequence) and the sequence # 3 (ie, “rcv2ndINV”) for establishing a session with the application server 10. And the second sequence).
  • the communication control device 20 transmits an INVITE message to the second user terminal 32 (step S504).
  • the 2nd user terminal 32 transmits an 18x message to the communication control apparatus 20 (step S505).
  • the communication control apparatus 20 will transmit an 18x message to the application server 10, if an 18x message is received from the 2nd user terminal 32 (step S506).
  • the second user terminal 32 transmits a 200 message corresponding to the INVITE message received in step S504 to the communication control device 20 (step S507).
  • the communication control device 20 receives the 200 message in the sequence specified by the value “snd2ndINV” of the attribute “callname” of the element “newcall”. In other words, the communication control device 20 detects that an event (that is, reception of 200 messages) specified by the value “200 ok” of the attribute “sipevent” of the element “eventnotify” has been executed.
  • the 18x message is transmitted to the communication control device 20 (step S508). And the communication control apparatus 20 will transmit an 18x message to the 1st user terminal 31, if an 18x message is received from the application server 10 (step S509).
  • the communication control device 20 transmits a 200 message corresponding to the INVITE message received in step S503 to the application server 10 (step S510).
  • the application server 10 transmits an ACK message to the communication control device 20 (step S511). Thereby, the session between the application server 10 and the communication control apparatus 20 is established.
  • the application server 10 transmits a 200 message corresponding to the INVITE message received in step S502 to the communication control apparatus 20 (step S512). And the communication control apparatus 20 will transmit the 200 message with respect to the INVITE message received in step S501 to the 1st user terminal 31, if the 200 message is received from the application server 10 (step S513).
  • the communication control device 20 transmits an ACK message to the application server 10 (step S514). Thereby, the session between the application server 10 and the communication control apparatus 20 is established.
  • the communication control apparatus 20 receives from the second user terminal 32 a 200 message in which the value of “X-Service-Name” in the header is “AnsMachine” in step S507.
  • the communication control device 20 ends the session established by the sequence # 3 specified by the value “rcv2ndINV” of the attribute “name” of the element “releasesec”. At this time, the communication control apparatus 20 does not end the session related to the sequence # 4 that is synchronized with the sequence # 3 related to the session to be ended. That is, the communication control device 20 releases the synchronization between the sequence # 3 and the sequence # 4.
  • the communication control device 20 transmits a BYE message to the application server 10 (step S515).
  • the application server 10 transmits a 200 message for the BYE message received in step S515 to the communication control apparatus 20 (step S516).
  • the communication control device 20 ends the session established by the sequence # 2 specified by the value “snd1stINV” of the attribute “name” of the element “releasesec”. At this time, the communication control apparatus 20 does not end the session related to the sequence # 1 that is synchronized with the sequence # 2 related to the session to be ended. That is, the communication control device 20 releases the synchronization between the sequence # 2 and the sequence # 1.
  • the communication control device 20 transmits a BYE message to the application server 10 (step S517).
  • the application server 10 transmits a 200 message for the BYE message received in step S517 to the communication control apparatus 20 (step S518).
  • the first user terminal 31 transmits an ACK message to the communication control device 20 (step S519). Thereby, the session between the 1st user terminal 31 and the communication control apparatus 20 is established.
  • the communication control device 20 transmits an ACK message to the second user terminal 32 (step S520). Thereby, the session between the 2nd user terminal 32 and the communication control apparatus 20 is established.
  • the communication control device 20 controls synchronization between the first sequence and the second sequence based on the scenario information. can do. Therefore, the user can easily control synchronization between a plurality of sequences by appropriately setting the scenario information.
  • the communication control apparatus 20 when the synchronization information represents that the first sequence and the second sequence are synchronized, the communication control apparatus 20 according to the first embodiment starts the execution of the first sequence after the start of the first sequence. Each of the remaining communication events in the second sequence is executed substantially simultaneously with the time when the corresponding communication event in the first sequence is executed.
  • the communication control device 20 can synchronize the first sequence and the second sequence more reliably.
  • the communication control device 20 when the synchronization information represents that the first sequence and the second sequence are synchronized, the first session established by the first sequence, And when one of the 2nd sessions established by the said 2nd sequence is complete
  • the communication control device 20 when the communication control device 20 according to the first embodiment indicates that the synchronization information synchronizes the first sequence and the second sequence, in one of the first sequence and the second sequence, the first media information is transferred to the second communication device. Re-send to.
  • the communication control device 20 can match the media information among a plurality of sequences to be synchronized based on the scenario information.
  • the communication control apparatus 100 A device that establishes a session with a communication device by executing a sequence of a plurality of communication events that are sequentially executed one by one.
  • the communication control device 100 Whether to synchronize the first sequence that is a sequence to be newly executed and the second sequence that is another sequence that is associated with the communication event and instructed to newly execute the sequence
  • a scenario execution unit (scenario execution means) 102 that newly executes a sequence based on Is provided.
  • the communication control apparatus 100 can control the synchronization between the first sequence and the second sequence based on the scenario information. Therefore, the user can easily control synchronization between a plurality of sequences by appropriately setting the scenario information.
  • the communication system may include a plurality of application servers.
  • each function of the communication system 1 is realized by the CPU executing a program (software), but may be realized by hardware such as a circuit.
  • the program is stored in the storage device, but may be stored in a computer-readable recording medium.
  • the recording medium is a portable medium such as a flexible disk, an optical disk, a magneto-optical disk, and a semiconductor memory.
  • a communication control device that establishes a session with a communication device by executing a sequence of a plurality of communication events that are sequentially executed one by one, Whether to synchronize the first sequence that is a sequence to be newly executed and the second sequence that is another sequence that is associated with the communication event and instructed to newly execute the sequence
  • Scenario information receiving means for receiving scenario information including sequence execution instruction information including synchronization information indicating When the communication event associated with the sequence execution instruction information included in the accepted scenario information is executed while the sequence is executed, the synchronization information included in the sequence execution instruction information Scenario execution means for newly executing a sequence based on
  • a communication control device comprising:
  • the communication control apparatus can control the synchronization between the first sequence and the second sequence based on the scenario information. Therefore, the user can easily control synchronization between a plurality of sequences by appropriately setting the scenario information.
  • the communication control apparatus can synchronize the first sequence and the second sequence more reliably.
  • Appendix 4 The communication control device according to any one of appendix 1 to appendix 3, In the case where the synchronization information represents that the first sequence and the second sequence are synchronized, the scenario execution means, the first session established by the first sequence, and the second sequence A communication control device configured to end one of the second sessions established by the sequence when the other ends.
  • the scenario execution unit is configured to communicate with a communication device that is a communication destination in one of the first sequence and the second sequence.
  • the first media information A communication control device configured to retransmit the media information to the second communication device.
  • the communication control device can match the media information among a plurality of sequences to be synchronized based on the scenario information.
  • the communication control device according to any one of appendix 1 to appendix 5,
  • the scenario information includes a synchronization release instruction information that is associated with a communication event and that instructs to release the synchronization of the first sequence and the second sequence
  • the scenario execution means includes During the execution of the sequence, the synchronization between the first sequence and the second sequence is released after a communication event associated with the synchronization release instruction information included in the accepted scenario information is executed.
  • a communication control device configured as described above.
  • the communication control device can release the synchronization set between a plurality of sequences based on the scenario information.
  • the communication control device according to any one of appendix 1 to appendix 6,
  • the scenario information includes synchronization setting instruction information associated with a communication event and instructing to synchronize the first sequence and the second sequence
  • the scenario execution means includes The first sequence and the second sequence are synchronized after the communication event associated with the synchronization setting instruction information included in the received scenario information is executed during the execution of the sequence. Configured communication control device.
  • the communication control device can synchronize a plurality of sequences that have not been synchronized based on the scenario information.
  • Appendix 8 The communication control device according to any one of appendix 1 to appendix 7, The communication control device, wherein the communication event is transmission or reception of a message in accordance with SIP (Session Initiation Protocol).
  • SIP Session Initiation Protocol
  • the communication control device according to any one of appendix 1 to appendix 8,
  • the scenario information is a communication control device that is information described according to XML (Extensible Markup Language).
  • a communication control device that establishes a session with a communication device by executing a sequence of a plurality of communication events that are sequentially executed one by one. Whether to synchronize the first sequence that is a sequence to be newly executed and the second sequence that is another sequence that is associated with the communication event and instructed to newly execute the sequence Accept scenario information including sequence execution instruction information including synchronization information indicating When the communication event associated with the sequence execution instruction information included in the accepted scenario information is executed while the sequence is executed, the synchronization information included in the sequence execution instruction information A communication control program for executing a process that newly executes a sequence based on the above.
  • the present invention can be applied to a communication control device that establishes a session with a communication device by executing a sequence including a plurality of communication events.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Telephonic Communication Services (AREA)
  • Computer And Data Communications (AREA)

Abstract

 通信制御装置100は、複数の通信イベントからなるシーケンスを実行することにより、通信装置との間でセッションを確立する。通信制御装置は、通信イベントと対応付けられ、シーケンスを新たに実行する旨を指示し、且つ、当該新たに実行される第1のシーケンス、及び、他の第2のシーケンスを同期させるか否かを表す同期情報を含むシーケンス実行指示情報を含むシナリオ情報を受け付けるシナリオ情報受付部101と、あるシーケンスの実行中に、受け付けられたシナリオ情報に含まれるシーケンス実行指示情報と対応付けられた通信イベントが実行された場合、シーケンス実行指示情報が含む同期情報に基づいてシーケンスを新たに実行するシナリオ実行部102と、を備える。

Description

通信制御装置
 本発明は、複数の通信イベントからなるシーケンスを実行することにより、通信装置との間でセッションを確立する通信制御装置に関する。
 複数の通信イベントからなるシーケンスを実行することにより、通信装置との間でセッションを確立する通信制御装置が知られている。この種の通信制御装置の一つとして、特許文献1に記載の通信制御装置は、通信先を特定する通信先特定情報と対応付けられ、当該通信先からの応答の種別と対応付けられ、且つ、転送先を特定する転送先特定情報を含むシナリオ情報を受け付ける。
 そして、通信制御装置は、上記通信先特定情報により特定される通信先との間でセッションを確立するためのメッセージを受信した場合、当該通信先の応答を取得し、当該応答の種別と対応付けられた転送先特定情報により特定される転送先へ、メッセージを転送する。このように、通信制御装置は、受け付けられたシナリオ情報に基づいてシーケンスを実行する。
特開2006-203311号公報
 ところで、ある通信装置から、セッションを確立するためのメッセージを受信した際に、当該セッションと関連する他のセッションを同時に確立する場合、各セッションを確立するためのシーケンス間で、同一の通信イベントを略同時に実行させる必要がある場合がある。
 また、複数のシーケンス間で、メディア情報(例えば、SDP(Session Description Protocol)に従って記述される情報等)を整合させる必要がある場合と、その必要がない場合と、がある。このように、通信制御装置は、複数のシーケンス間の同期を制御する必要がある。
 しかしながら、特許文献1に記載の通信制御装置においては、シナリオ情報に基づいて複数のシーケンス間の同期を制御することができないという問題があった。
 このため、本発明の目的は、上述した課題である「シナリオ情報に基づいて複数のシーケンス間の同期を制御することができないこと」を解決することが可能な通信制御装置を提供することにある。
 かかる目的を達成するため本発明の一形態である通信制御装置は、
 1つずつ順に実行される複数の通信イベントからなるシーケンスを実行することにより、通信装置との間でセッションを確立する装置である。
 更に、この通信制御装置は、
 通信イベントと対応付けられ、シーケンスを新たに実行する旨を指示し、且つ、当該新たに実行されるシーケンスである第1のシーケンス、及び、他のシーケンスである第2のシーケンスを同期させるか否かを表す同期情報を含むシーケンス実行指示情報を含むシナリオ情報を受け付けるシナリオ情報受付手段と、
 あるシーケンスを実行するとともに、当該シーケンスの実行中に、上記受け付けられたシナリオ情報に含まれるシーケンス実行指示情報と対応付けられた通信イベントが実行された場合、当該シーケンス実行指示情報が含む上記同期情報に基づいてシーケンスを新たに実行するシナリオ実行手段と、
 を備える。
 また、本発明の他の形態である通信制御方法は、
 1つずつ順に実行される複数の通信イベントからなるシーケンスを実行することにより、通信装置との間でセッションを確立する方法である。
 更に、この通信制御方法は、
 通信イベントと対応付けられ、シーケンスを新たに実行する旨を指示し、且つ、当該新たに実行されるシーケンスである第1のシーケンス、及び、他のシーケンスである第2のシーケンスを同期させるか否かを表す同期情報を含むシーケンス実行指示情報を含むシナリオ情報を受け付け、
 あるシーケンスを実行するとともに、当該シーケンスの実行中に、上記受け付けられたシナリオ情報に含まれるシーケンス実行指示情報と対応付けられた通信イベントが実行された場合、当該シーケンス実行指示情報が含む上記同期情報に基づいてシーケンスを新たに実行する方法である。
 また、本発明の他の形態である通信制御プログラムは、
 1つずつ順に実行される複数の通信イベントからなるシーケンスを実行することにより、通信装置との間でセッションを確立する通信制御装置に、
 通信イベントと対応付けられ、シーケンスを新たに実行する旨を指示し、且つ、当該新たに実行されるシーケンスである第1のシーケンス、及び、他のシーケンスである第2のシーケンスを同期させるか否かを表す同期情報を含むシーケンス実行指示情報を含むシナリオ情報を受け付け、
 あるシーケンスを実行するとともに、当該シーケンスの実行中に、上記受け付けられたシナリオ情報に含まれるシーケンス実行指示情報と対応付けられた通信イベントが実行された場合、当該シーケンス実行指示情報が含む上記同期情報に基づいてシーケンスを新たに実行する、処理を実行させるためのプログラムである。
 本発明は、以上のように構成されることにより、シナリオ情報に基づいて複数のシーケンス間の同期を制御することができる。
本発明の第1実施形態に係る通信システムの概略構成を表す図である。 本発明の第1実施形態に係る通信システムにおいて第1の装置と第2の装置との間にセッションを確立するために実行されるシーケンスの一例を示したシーケンス図である。 本発明の第1実施形態に係る通信制御装置の機能を表すブロック図である。 本発明の第1実施形態に係るシナリオ情報の一例を示した図である。 本発明の第1実施形態に係るシナリオ情報の一例を示した図である。 本発明の第1実施形態に係るシナリオ情報の一例を示した図である。 本発明の第1実施形態に係るシナリオ情報の一例を示した図である。 本発明の第1実施形態に係る通信システムの作動を示したシーケンス図である。 本発明の第1実施形態に係る通信システムの作動を示したシーケンス図である。 本発明の第1実施形態に係る通信システムの作動を示したシーケンス図である。 本発明の第1実施形態に係る通信システムの作動を示したシーケンス図である。 本発明の第2実施形態に係る通信制御装置の機能を表すブロック図である。
 以下、本発明に係る、通信制御装置、通信制御方法、及び、通信制御プログラム、の各実施形態について図1~図12を参照しながら説明する。
<第1実施形態>
(構成)
 図1に示したように、第1実施形態に係る通信システム1は、アプリケーション・サーバ10と、通信制御装置20と、複数のユーザ端末31,32,…と、を備える。アプリケーション・サーバ10と通信制御装置20とは、互いに通信可能に接続されている。
 また、通信制御装置20と、複数のユーザ端末31,32,…のそれぞれと、は、通信網(本例では、SIP(Session Initiation Protocol)網)NWを介して、互いに通信可能に接続されている。通信網NWは、互いに通信可能に接続された、複数のサーバ装置(本例では、SIPサーバ)により構成されている。
 アプリケーション・サーバ10は、情報処理装置である。アプリケーション・サーバ10は、図示しない中央処理装置(CPU;Central Processing Unit)、及び、記憶装置(メモリ及びハードディスク駆動装置(HDD;Hard Disk Drive))を備える。アプリケーション・サーバ10は、記憶装置に記憶されているプログラムをCPUが実行することにより、後述する機能を実現するように構成されている。
 通信制御装置20は、情報処理装置である。通信制御装置20は、図示しないCPU、記憶装置(メモリ及びHDD)、入力装置(本例では、キーボード、及び、マウス等)、及び、出力装置(本例では、ディスプレイ)を備える。通信制御装置20は、記憶装置に記憶されているプログラムをCPUが実行することにより、後述する機能を実現するように構成されている。
 各ユーザ端末31,32,…は、携帯電話端末である。なお、各ユーザ端末31,32,…は、固定電話機、パーソナル・コンピュータ、PHS(Personal Handyphone System)、PDA(Personal Data Assistance、Personal Digital Assistant)、スマートフォン、カーナビゲーション端末、又は、ゲーム端末等であってもよい。
 各ユーザ端末31,32,…は、図示しないCPU、記憶装置(メモリ)、入力装置(本例では、キー)、及び、出力装置(本例では、ディスプレイ)を備える。各ユーザ端末31,32,…は、記憶装置に記憶されているプログラムをCPUが実行することにより、後述する機能を実現するように構成されている。
(機能)
 アプリケーション・サーバ10、通信制御装置20、及び、複数のユーザ端末31,32,…のそれぞれ(各装置)は、通信イベントを実行する機能を有する。通信イベントは、SIPに従ったメッセージの送信、又は、受信である。
 アプリケーション・サーバ10、及び、通信制御装置20は、1つずつ順に実行される複数の通信イベントからなるシーケンスを実行することにより、通信装置としてのアプリケーション・サーバ10と通信制御装置20との間でセッションを確立する。
 同様に、ユーザ端末31、及び、通信制御装置20は、1つずつ順に実行される複数の通信イベントからなるシーケンスを実行することにより、通信装置としてのユーザ端末31と通信制御装置20との間でセッションを確立する。なお、他のユーザ端末32,…もユーザ端末31と同様の機能を有する。
 具体的には、図2に示したように、ステップS101~S104の通信イベントが順に実行されることにより、第1の装置と第2の装置との間にセッションが確立される。
 先ず、第1の装置は、第2の装置へ、SIPメッセージのうちのINVITEメッセージ(メソッドとして「INVITE」が設定されたメッセージ)を送信する(ステップS101)。
 次いで、第2の装置は、第1の装置へ、SIPメッセージのうちの18xメッセージ(ステータスコードとしての「18x」を開始行に含むレスポンス、ここで、「x」は、0~9の整数)を送信する(ステップS102)。
 その後、第2の装置は、第1の装置へ、SIPメッセージのうちの200メッセージ(ステータスコードとしての「200」と、「OK」と、を開始行に含むレスポンス)を送信する(ステップS103)。
 次いで、第1の装置は、第2の装置へ、SIPメッセージのうちのACKメッセージ(メソッドとして「ACK」が設定されたメッセージ)を送信する(ステップS104)。
 このようにして、第1の装置と第2の装置との間にセッションが確立される。
 そして、確立されたセッションを用いて、第1の装置及び第2の装置は、通信を行う。
 その後、第1の装置は、第2の装置へ、SIPメッセージのうちのBYEメッセージ(メソッドとして「BYE」が設定されたメッセージ)を送信する(ステップS105)。
 次いで、第2の装置は、第1の装置へ、SIPメッセージのうちの200メッセージを送信する(ステップS106)。
 このようにして、第1の装置と第2の装置との間に確立されていたセッションは終了する。なお、第2の装置が第1の装置へ、BYEメッセージを送信してもよい。
 更に、通信制御装置20の機能は、図3に示したように、シナリオ情報受付部(シナリオ情報受付手段)21と、シナリオ実行部(シナリオ実行手段)22と、を含む。
 シナリオ情報受付部21は、ユーザが入力装置を介して入力したシナリオ情報を受け付ける。なお、シナリオ情報受付部21は、シナリオ情報を他の装置から受信し、受信したシナリオ情報を受け付けるように構成されていてもよい。また、シナリオ情報受付部21は、シナリオ情報を予め記憶装置に記憶しておき、記憶されているシナリオ情報を読み出すことにより、読み出したシナリオ情報を受け付けるように構成されていてもよい。
 本例では、シナリオ情報受付部21は、受け付けられたシナリオ情報を記憶装置に記憶させる。
 本例では、シナリオ情報は、XML(Extensible Markup Language)に従って記述された情報である。なお、シナリオ情報は、XML以外の形式に従って記述された情報であってもよい。本例における要素の名称は、一例である。即ち、要素の名称として、本例にて示した名称以外の名称が用いられてもよい。
 シナリオ情報は、シーケンス実行指示情報を含む。シーケンス実行指示情報は、通信イベント(以下、単に「イベント」とも表記する)と対応付けられた情報である。更に、シーケンス実行指示情報は、シーケンスを新たに実行する旨を指示する情報である。加えて、シーケンス実行指示情報は、同期情報を含む。
 同期情報は、当該新たに実行されるシーケンスである第1のシーケンス、及び、他のシーケンスである第2のシーケンスを同期させるか否かを表す情報である。
 シナリオ情報の一例は、図4に示したように、要素「scenario」の属性「scenarioname」の値として「normal0」が設定されている。属性「scenarioname」の値は、シナリオの名称を表す。
 更に、要素「scenario」の子要素「event」の属性「eventname」の値として「rcv1stINV」が設定されている。要素「event」は、発生したイベントに対する動作を表す。属性「eventname」の値は、イベントを特定するための情報である。「rcv」は、受信を表し、「1st」は、1番目であることを表し、「INV」は、INVITEメッセージであることを表す。即ち、「rcv1stINV」は、1番目のINVITEメッセージの受信としてのイベントを表す。
 加えて、要素「event」の子要素「actionX」(Xは、1以上の整数、ここでは、Xは、1)は、イベント内の処理を表す。Xは、処理の順序を表し、Xが小さくなるほど、早期に実行される処理であることを表す。即ち、同一のXが付与されている処理は、非同期に実行される。
 更に、要素「action1」の子要素「newcall」の属性「callname」の値として「snd1stINV」が設定されている。要素「newcall」は、セッションを確立するためのシーケンスを新たに実行する旨を指示する。属性「callname」の値は、シーケンスの名称を表す。
 加えて、要素「newcall」の子要素「callopt」の属性「sync」の値として「rcv1stINV」が設定されている。要素「callopt」は、シーケンスを新たに実行する際のオプション(付加情報)を表す。属性「sync」の値は、同期させる対象となるシーケンスを特定するための情報である。
 属性「sync」の値として、属性「eventname」の値、属性「callname」の値、又は、「none」が設定される。属性「sync」の値は、属性「eventname」の値、又は、属性「callname」の値が設定された場合、当該値により特定されるシーケンスと同期させることを表す。属性「sync」の値は、「none」が設定された場合、他のシーケンスと同期させないことを表す。
 このように、要素「newcall」は、シーケンス実行指示情報を構成している。また、要素「callopt」の属性「sync」の値は、同期情報を構成している。更に、要素「newcall」を要素として含む要素「event」の属性「eventname」の値は、シーケンス実行指示情報と対応付けられたイベントを特定するための情報を構成している。
 なお、後述するように、シナリオ実行部22は、第1のシーケンス及び第2のシーケンスを同期させる場合、当該第1のシーケンスの実行を開始した時点以降、当該第2のシーケンスにおける残余の通信イベントのそれぞれを、当該第1のシーケンスにおける対応する通信イベントを実行した直後に実行する。
 更に、後述するように、シナリオ実行部22は、第1のシーケンス及び第2のシーケンスを同期させる場合、当該第1のシーケンスにより確立される第1のセッション、及び、当該第2のシーケンスにより確立される第2のセッションの一方が終了したとき、他方も終了させる。
 図5は、シナリオ情報の他の例を示している。この例においては、要素「scenario」は、2つの子要素「event」を含んでいる。このように、シナリオ情報は、複数の要素「event」を含んでいてもよい。
 図6は、シナリオ情報の他の例を示している。この例においては、要素「newcall」は、子要素「eventnotify」を含んでいる。また、要素「eventnotify」の属性「sipevent」の値として、「200ok」が設定されている。また、要素「eventnotify」の属性「eventname」の値として、「rcv200_snd1stINV」が設定されている。
 要素「eventnotify」は、属性「sipevent」の値により特定されるイベントが発生した(実行された)時に、属性「eventname」の値により特定されるイベントを実行する旨を指示する。この例においては、要素「eventnotify」は、200メッセージを受信した時に、「rcv200_snd1stINV」により特定されるイベントを実行することを表す。
 また、要素「newcall」の属性「RURIheader」の値として「ガイダンス1」が設定されている。属性「RURIheader」の値は、新たに実行されるシーケンスのRURI(Request Uniform Resource Identifier)ヘッダを表す。
 図7は、シナリオ情報の他の例を示している。この例においては、要素「event」は、子要素「if」を含んでいる。要素「if」は、子要素「condition」と、子要素「exec」と、子要素「else」と、を含む。
 要素「condition」の属性「type」の値として「header」が設定されている。要素「condition」は、子要素「conditionopt」を含む。要素「conditionopt」の属性「header」の値として「X-Service-Name」が設定されている。更に、要素「conditionopt」の属性「value」の値として「AnsMachine」が設定されている。
 要素「exec」の属性「name」の値として「action1」が設定されている。
 要素「if」は、要素「condition」の属性「type」の値により特定される情報が、要素「conditionopt」により定められる条件を満足するか否かを判定することを表す。更に、要素「if」は、当該情報が当該条件を満足する場合、要素「exec」により特定される処理を実行し、当該情報が当該条件を満足しない場合、要素「else」により特定される処理を実行することを表す。
 本例では、要素「if」は、受信されたメッセージに含まれるヘッダ内の「X-Service-Name」の値が、「AnsMachine」である場合、「action1」により特定される処理を実行し、当該値が「AnsMachine」でない場合、何も処理を実行しないことを表す。
 また、要素「action1」は、子要素「releasecall」と、子要素「updatecall」と、を含む。
 この例においては、要素「releasecall」の属性「name」の値として「snd1stINV」が設定されている。更に、要素「releasecall」の子要素「releaseopt」の属性「sync」の値として「disable」が設定されている。
 要素「releasecall」は、属性「name」の値により特定されるシーケンスによって確立されたセッションを終了する旨を指示する。このとき、要素「releasecall」は、要素「releaseopt」の属性「sync」の値として「disable」が設定されている場合、終了させるセッションに係るシーケンスと同期されているシーケンスが存在していても、当該シーケンスに係るセッションを終了させない。
 このように、要素「releaseopt」の属性「sync」の値は、第1のシーケンス及び第2のシーケンスの同期を解除する旨を指示する同期解除指示情報を構成している。更に、要素「releaseopt」を要素として含む要素「event」の属性「eventname」の値は、同期解除指示情報と対応付けられたイベントを特定するための情報を構成している。
 また、上記例においては、要素「updatecall」の属性「name」の値として「rcv1stINV」が設定されている。更に、要素「updatecall」の子要素「updatecallopt」の属性「sync」の値として「snd2ndINV」が設定されている。
 要素「updatecall」は、属性「name」の値により特定されるシーケンスと、要素「updatecallopt」の属性「sync」の値により特定されるシーケンスと、を同期させる旨を指示する。
 このように、要素「updatecallopt」の属性「sync」の値は、第1のシーケンス及び第2のシーケンスを同期させる旨を指示する同期設定指示情報を構成している。更に、要素「updatecall」を要素として含む要素「event」の属性「eventname」の値は、同期設定指示情報と対応付けられたイベントを特定するための情報を構成している。
 シナリオ実行部22は、シナリオ情報受付部21により受け付けられたシナリオ情報に基づいてシーケンスを実行する。本例では、シナリオ実行部22は、最初のメッセージを受信した場合、記憶装置に記憶されているシナリオ情報の中から1つのシナリオ情報を選択する。例えば、シナリオ実行部22は、受信されたメッセージに含まれる情報(送信先のアドレス、及び、送信元のアドレス等)、及び、メッセージが受信された日時等に基づいてシナリオ情報を選択する。
 具体的には、シナリオ実行部22は、シナリオ情報をパースする(シナリオ情報の構文を解析する)。
 そして、シナリオ実行部22は、あるシーケンスを実行する。更に、シナリオ実行部22は、シナリオ情報において処理と対応付けられたイベントが実行されるまで待機する。そして、シナリオ実行部22は、当該シーケンスの実行中に、当該イベントが実行された場合、当該イベントと対応付けられた処理を実行する。
 より具体的に述べると、シナリオ実行部22は、当該シーケンスの実行中に、シナリオ情報受付部21により受け付けられたシナリオ情報に含まれるシーケンス実行指示情報と対応付けられたイベントが実行された場合、当該シーケンス実行指示情報が含む同期情報に基づいてシーケンス(第1のシーケンス)を新たに実行する。
 更に、シナリオ実行部22は、同期情報が第1のシーケンス及び第2のシーケンスを同期させる旨を表す場合において、当該第1のシーケンスの実行を開始した時点以降、当該第2のシーケンスにおける残余の通信イベントのそれぞれを、当該第1のシーケンスにおける対応する通信イベントを実行した直後に実行する。
 なお、シナリオ実行部22は、同期情報が第1のシーケンス及び第2のシーケンスを同期させる旨を表す場合において、当該第1のシーケンスの実行を開始した時点以降、当該第2のシーケンスにおける残余の通信イベントのそれぞれを、当該第1のシーケンスにおける対応する通信イベントを実行した時点と略同時に(例えば、直前に、又は、同時に)実行するように構成されていてもよい。
 加えて、シナリオ実行部22は、同期情報が第1のシーケンス及び第2のシーケンスを同期させる旨を表す場合において、当該第1のシーケンスにより確立される第1のセッション、及び、当該第2のシーケンスにより確立される第2のセッションの一方が終了したとき、他方も終了させる。
 更に、シナリオ実行部22は、同期情報が第1のシーケンス及び第2のシーケンスを同期させる旨を表す場合、メディア情報を同期させる。具体的には、シナリオ実行部22は、第1のシーケンス及び第2のシーケンスの一方において、通信先の通信装置である第1の通信装置から受信した第1のメディア情報と、第1のシーケンス及び第2のシーケンスの他方において、通信先の通信装置である第2の通信装置へ送信した第2のメディア情報と、が異なるとき、当該第1のメディア情報を当該第2の通信装置へ再送信する。
 加えて、シナリオ実行部22は、上記シーケンスの実行中に、シナリオ情報受付部21により受け付けられたシナリオ情報に含まれる同期解除指示情報と対応付けられた通信イベントが実行された時点以降、第1のシーケンス及び第2のシーケンスの同期を解除する。
 更に、シナリオ実行部22は、上記シーケンスの実行中に、シナリオ情報受付部21により受け付けられたシナリオ情報に含まれる同期設定指示情報と対応付けられた通信イベントが実行された時点以降、第1のシーケンス及び第2のシーケンスを同期させる。
(作動)
 次に、上述した通信システム1の作動について説明する。
 いま、通信制御装置20が図4に示したシナリオ情報を選択する場合を想定する。この場合、図8に示したように、先ず、ユーザ端末31は、INVITEメッセージを通信制御装置20へ送信する(ステップS201)。
 これにより、通信制御装置20は、1番目のINVITEメッセージを受信する。即ち、通信制御装置20は、ユーザ端末31との間でセッションを確立するためのシーケンス#1を実行する。加えて、通信制御装置20は、要素「event」の属性「eventname」の値「rcv1stINV」により特定されるイベント(即ち、1番目のINVITEメッセージの受信)が実行されたことを検出する。
 従って、通信制御装置20は、アプリケーション・サーバ10との間でセッションを確立するためのシーケンス#2を新たに実行する。ここで、この新たに実行されるシーケンスは、「snd1stINV」により特定されるシーケンスである。更に、通信制御装置20は、この新たに実行されるシーケンス#2(第1のシーケンス)と、ユーザ端末31との間でセッションを確立するためのシーケンス#1(即ち、「rcv1stINV」により特定されるシーケンス、第2のシーケンス)と、を同期させる。
 従って、以降において、通信制御装置20は、第2のシーケンスにおける残余の通信イベント(本例では、18xメッセージの送信、及び、200メッセージの送信)のそれぞれを、第1のシーケンスにおける対応する通信イベント(本例では、18xメッセージの受信、及び、200メッセージの受信)を実行した直後に実行する。
 更に、通信制御装置20は、第1のシーケンスにおけるACKメッセージの送信を、第2のシーケンスにおける対応する通信イベント(ここでは、ACKメッセージの受信)を実行した直後に実行する。
 より具体的に述べると、通信制御装置20は、INVITEメッセージをアプリケーション・サーバ10へ送信する(ステップS202)。これにより、アプリケーション・サーバ10は、18xメッセージを通信制御装置20へ送信する(ステップS203)。
 そして、通信制御装置20は、アプリケーション・サーバ10から18xメッセージを受信すると、18xメッセージをユーザ端末31へ送信する(ステップS204)。即ち、通信制御装置20は、第1のシーケンスにおける対応するイベントが実行されるまで、第2のシーケンスにおける次のイベントの実行を待機する、と言うことができる。
 その後、アプリケーション・サーバ10は、200メッセージを通信制御装置20へ送信する(ステップS205)。そして、通信制御装置20は、アプリケーション・サーバ10から200メッセージを受信すると、200メッセージをユーザ端末31へ送信する(ステップS206)。
 その後、ユーザ端末31は、ACKメッセージを通信制御装置20へ送信する(ステップS207)。これにより、ユーザ端末31と通信制御装置20との間のセッションが確立される。
 更に、通信制御装置20は、ユーザ端末31からACKメッセージを受信すると、ACKメッセージをアプリケーション・サーバ10へ送信する(ステップS208)。これにより、アプリケーション・サーバ10と通信制御装置20との間のセッションが確立される。
 その後、ユーザ端末31は、BYEメッセージを通信制御装置20へ送信する(ステップS209)。通信制御装置20は、ユーザ端末31からBYEメッセージを受信すると、BYEメッセージをアプリケーション・サーバ10へ送信する(ステップS210)。更に、通信制御装置20は、200メッセージをユーザ端末31へ送信する(ステップS211)。これにより、ユーザ端末31と通信制御装置20との間のセッションが終了する。
 更に、アプリケーション・サーバ10は、200メッセージを通信制御装置20へ送信する(ステップS212)。これにより、アプリケーション・サーバ10と通信制御装置20との間のセッションも終了する。
 このようにして、通信制御装置20は、第2のシーケンスにより確立された第2のセッションが終了したとき、第1のシーケンスにより確立された第1のセッションも終了させる。
 次に、通信制御装置20が図5に示したシナリオ情報を選択する場合を想定する。この場合、図9に示したように、先ず、ユーザ端末(第1のユーザ端末)31は、INVITEメッセージを通信制御装置20へ送信する(ステップS301)。
 これにより、通信制御装置20は、1番目のINVITEメッセージを受信する。即ち、通信制御装置20は、第1のユーザ端末31との間でセッションを確立するためのシーケンス#1を実行する。加えて、通信制御装置20は、要素「event」の属性「eventname」の値「rcv1stINV」により特定されるイベント(即ち、1番目のINVITEメッセージの受信)が実行されたことを検出する。
 従って、通信制御装置20は、アプリケーション・サーバ10との間でセッションを確立するためのシーケンス#2を新たに実行する。ここで、この新たに実行されるシーケンスは、「snd1stINV」により特定されるシーケンスである。更に、通信制御装置20は、この新たに実行されるシーケンス#2(第1のシーケンス)と、第1のユーザ端末31との間でセッションを確立するためのシーケンス#1(即ち、「rcv1stINV」により特定されるシーケンス、第2のシーケンス)と、を同期させる。
 より具体的に述べると、通信制御装置20は、INVITEメッセージをアプリケーション・サーバ10へ送信する(ステップS302)。これにより、アプリケーション・サーバ10は、18xメッセージを通信制御装置20へ送信する(ステップS303)。
 そして、通信制御装置20は、アプリケーション・サーバ10から18xメッセージを受信すると、18xメッセージをユーザ端末31へ送信する(ステップS304)。
 その後、アプリケーション・サーバ10は、通信制御装置20との間でセッションを新たに確立するため、INVITEメッセージを通信制御装置20へ送信する(ステップS305)。
 これにより、通信制御装置20は、2番目のINVITEメッセージを受信する。即ち、通信制御装置20は、アプリケーション・サーバ10との間でセッションを確立するためのシーケンス#3を実行する。加えて、通信制御装置20は、要素「event」の属性「eventname」の値「rcv2ndINV」により特定されるイベント(即ち、2番目のINVITEメッセージの受信)が実行されたことを検出する。
 従って、通信制御装置20は、第2のユーザ端末32との間でセッションを確立するためのシーケンス#4を新たに実行する。ここで、この新たに実行されるシーケンスは、「snd2ndINV」により特定されるシーケンスである。更に、通信制御装置20は、この新たに実行されるシーケンス#4(第1のシーケンス)と、アプリケーション・サーバ10との間でセッションを確立するためのシーケンス#3(即ち、「rcv2ndINV」により特定されるシーケンス、第2のシーケンス)と、を同期させる。
 より具体的に述べると、通信制御装置20は、INVITEメッセージを第2のユーザ端末32へ送信する(ステップS306)。これにより、第2のユーザ端末32は、18xメッセージを通信制御装置20へ送信する(ステップS307)。そして、通信制御装置20は、第2のユーザ端末32から18xメッセージを受信すると、18xメッセージをアプリケーション・サーバ10へ送信する(ステップS308)。
 その後、第2のユーザ端末32は、ステップS306にて受信したINVITEメッセージに対する200メッセージを通信制御装置20へ送信する(ステップS309)。そして、通信制御装置20は、第2のユーザ端末32から200メッセージを受信すると、ステップS305にて受信したINVITEメッセージに対する200メッセージをアプリケーション・サーバ10へ送信する(ステップS310)。
 その後、アプリケーション・サーバ10は、ACKメッセージを通信制御装置20へ送信する(ステップS311)。これにより、アプリケーション・サーバ10と通信制御装置20との間のセッションが確立される。
 更に、通信制御装置20は、アプリケーション・サーバ10からACKメッセージを受信すると、ACKメッセージを第2のユーザ端末32へ送信する(ステップS312)。これにより、第2のユーザ端末32と通信制御装置20との間のセッションが確立される。
 その後、アプリケーション・サーバ10は、ステップS302にて受信したINVITEメッセージに対する200メッセージを通信制御装置20へ送信する(ステップS313)。そして、通信制御装置20は、アプリケーション・サーバ10から200メッセージを受信すると、ステップS301にて受信したINVITEメッセージに対する200メッセージを第1のユーザ端末31へ送信する(ステップS314)。
 その後、第1のユーザ端末31は、ACKメッセージを通信制御装置20へ送信する(ステップS315)。これにより、第1のユーザ端末31と通信制御装置20との間のセッションが確立される。
 更に、通信制御装置20は、第1のユーザ端末31からACKメッセージを受信すると、ACKメッセージをアプリケーション・サーバ10へ送信する(ステップS316)。これにより、アプリケーション・サーバ10と通信制御装置20との間のセッションが確立される。
 その後、第2のユーザ端末32は、BYEメッセージを通信制御装置20へ送信する(ステップS317)。通信制御装置20は、第2のユーザ端末32からBYEメッセージを受信すると、BYEメッセージをアプリケーション・サーバ10へ送信する(ステップS318)。
 次いで、通信制御装置20は、BYEメッセージを第1のユーザ端末31へ送信する(ステップS319)。更に、アプリケーション・サーバ10は、BYEメッセージを通信制御装置20へ送信する(ステップS320)。
 次いで、第1のユーザ端末31は、ステップS319にて受信したBYEメッセージに対する200メッセージを通信制御装置20へ送信する(ステップS321)。これにより、第1のユーザ端末31と通信制御装置20との間のセッション(シーケンス#1を実行することにより確立されたセッション)が終了する。
 更に、通信制御装置20は、ステップS320にて受信したBYEメッセージに対する200メッセージをアプリケーション・サーバ10へ送信する(ステップS322)。これにより、アプリケーション・サーバ10と通信制御装置20との間のセッション(シーケンス#2を実行することにより確立されたセッション)が終了する。
 このようにして、通信制御装置20は、シーケンス#1により確立されたセッションが終了したとき、シーケンス#2により確立されたセッションも終了させる。
 更に、アプリケーション・サーバ10は、ステップS318にて受信したBYEメッセージに対する200メッセージを通信制御装置20へ送信する(ステップS323)。これにより、アプリケーション・サーバ10と通信制御装置20との間のセッション(シーケンス#3を実行することにより確立されたセッション)が終了する。
 次いで、通信制御装置20は、ステップS317にて受信したBYEメッセージに対する200メッセージを第2のユーザ端末32へ送信する(ステップS324)。これにより、第2のユーザ端末32と通信制御装置20との間のセッション(シーケンス#4を実行することにより確立されたセッション)が終了する。
 このようにして、通信制御装置20は、シーケンス#3により確立されたセッションが終了したとき、シーケンス#4により確立されたセッションも終了させる。
 次に、通信制御装置20が図6に示したシナリオ情報を選択する場合を想定する。この場合、図10に示したように、先ず、ユーザ端末(第1のユーザ端末)31は、INVITEメッセージを通信制御装置20へ送信する(ステップS401)。
 ここで、このINVITEメッセージは、第1のユーザ端末31に対して設定されたメディア情報「A」を含む。本例では、メディア情報は、SDP(Session Description Protocol)に従って記述される情報である。
 これにより、通信制御装置20は、1番目のINVITEメッセージを受信する。即ち、通信制御装置20は、第1のユーザ端末31との間でセッションを確立するためのシーケンス#1を実行する。加えて、通信制御装置20は、要素「event」の属性「eventname」の値「rcv1stINV」により特定されるイベント(即ち、1番目のINVITEメッセージの受信)が実行されたことを検出する。
 従って、通信制御装置20は、アプリケーション・サーバ10との間でセッションを確立するためのシーケンス#2を新たに実行する。ここで、この新たに実行されるシーケンスは、「snd1stINV」により特定されるシーケンスである。更に、通信制御装置20は、この新たに実行されるシーケンス#2(第1のシーケンス)と、第1のユーザ端末31との間でセッションを確立するためのシーケンス#1(即ち、「rcv1stINV」により特定されるシーケンス、第2のシーケンス)と、を同期させない。
 より具体的に述べると、通信制御装置20は、INVITEメッセージをアプリケーション・サーバ10へ送信する(ステップS402)。ここで、このINVITEメッセージは、空のメディア情報「」を含む。
 これにより、アプリケーション・サーバ10は、18xメッセージを通信制御装置20へ送信する(ステップS403)。ここで、この18xメッセージは、アプリケーション・サーバ10に対して設定されたメディア情報「MB」を含む。
 その後、アプリケーション・サーバ10は、ステップS402にて受信したINVITEメッセージに対する200メッセージを通信制御装置20へ送信する(ステップS404)。
 これにより、通信制御装置20は、要素「newcall」の属性「callname」の値「snd1stINV」により特定されるシーケンスにおいて、200メッセージを受信する。即ち、通信制御装置20は、要素「eventnotify」の属性「sipevent」の値「200ok」により特定されるイベント(即ち、200メッセージの受信)が実行されたことを検出する。
 更に、通信制御装置20は、ACKメッセージをアプリケーション・サーバ10へ送信する(ステップS405)。これにより、アプリケーション・サーバ10と通信制御装置20との間のセッションが確立される。
 次いで、通信制御装置20は、第2のユーザ端末32との間でセッションを確立するためのシーケンス#4を新たに実行する。ここで、この新たに実行されるシーケンスは、「snd2ndINV」により特定されるシーケンスである。更に、通信制御装置20は、この新たに実行されるシーケンス#4(第1のシーケンス)と、アプリケーション・サーバ10との間でセッションを確立するためのシーケンス#2(即ち、「snd1stINV」により特定されるシーケンス、第2のシーケンス)と、を同期させる。
 より具体的に述べると、通信制御装置20は、INVITEメッセージを第2のユーザ端末32へ送信する(ステップS406)。ここで、このINVITEメッセージは、ステップS403にて受信した18xメッセージに含まれるメディア情報「MB」を含む。
 これにより、第2のユーザ端末32は、18xメッセージを通信制御装置20へ送信する(ステップS407)。ここで、このINVITEメッセージは、第2のユーザ端末32に対して設定されたメディア情報「B」を含む。その後、第2のユーザ端末32は、ステップS406にて受信したINVITEメッセージに対する200メッセージを通信制御装置20へ送信する(ステップS408)。
 通信制御装置20は、シーケンス#4(第1のシーケンス)において、第2のユーザ端末32(通信先の通信装置である第1の通信装置)から受信したメディア情報(第1のメディア情報)と、シーケンス#2(第2のシーケンス)において、アプリケーション・サーバ10(通信先の通信装置である第2の通信装置)へ送信したメディア情報(第2のメディア情報)と、が同じであるか否かを判定する。
 ここでは、第1のメディア情報は、「B」であり、第2のメディア情報は、空の情報である。従って、通信制御装置20は、第1のメディア情報と第2のメディア情報とが異なると判定する。これにより、通信制御装置20は、第1のメディア情報を、アプリケーション・サーバ10(第2の通信装置)へ再送信する。
 具体的には、通信制御装置20は、reINVITEメッセージ(メソッドとして「INVITE」が設定されたメッセージ)をアプリケーション・サーバ10へ送信する(ステップS409)。ここで、このreINVITEメッセージは、ステップS407にて受信した18xメッセージに含まれるメディア情報「B」を含む。
 その後、アプリケーション・サーバ10は、ステップS409にて受信したreINVITEメッセージに対する200メッセージを通信制御装置20へ送信する(ステップS410)。
 次いで、通信制御装置20は、ACKメッセージをアプリケーション・サーバ10へ送信する(ステップS411)。これにより、アプリケーション・サーバ10と通信制御装置20との間のセッションが確立される。
 次いで、通信制御装置20は、ACKメッセージを第2のユーザ端末32へ送信する(ステップS412)。これにより、第2のユーザ端末32と通信制御装置20との間のセッションが確立される。
 次いで、通信制御装置20は、アプリケーション・サーバ10との間でセッションを確立するためのシーケンス#3を新たに実行する。ここで、この新たに実行されるシーケンスは、「snd3rdINV」により特定されるシーケンスである。更に、通信制御装置20は、この新たに実行されるシーケンス#3(第1のシーケンス)と、第1のユーザ端末31との間でセッションを確立するためのシーケンス#1(即ち、「rcv1stINV」により特定されるシーケンス、第2のシーケンス)と、を同期させる。
 より具体的に述べると、通信制御装置20は、INVITEメッセージをアプリケーション・サーバ10へ送信する(ステップS413)。ここで、このINVITEメッセージは、ステップS401にて受信したINVITEメッセージに含まれるメディア情報「A」を含む。
 これにより、アプリケーション・サーバ10は、18xメッセージを通信制御装置20へ送信する(ステップS414)。ここで、このINVITEメッセージは、アプリケーション・サーバ10に対して設定されたメディア情報「MB」を含む。
 そして、通信制御装置20は、アプリケーション・サーバ10から18xメッセージを受信すると、18xメッセージを第1のユーザ端末31へ送信する(ステップS415)。ここで、このINVITEメッセージは、ステップS416にて受信したメディア情報「MB」を含む。
 その後、アプリケーション・サーバ10は、ステップS413にて受信したINVITEメッセージに対する200メッセージを通信制御装置20へ送信する(ステップS416)。そして、通信制御装置20は、アプリケーション・サーバ10から200メッセージを受信すると、ステップS401にて受信したINVITEメッセージに対する200メッセージを第1のユーザ端末31へ送信する(ステップS417)。
 次いで、第1のユーザ端末31は、ACKメッセージを通信制御装置20へ送信する(ステップS418)。これにより、第1のユーザ端末31と通信制御装置20との間のセッションが確立される。
 次いで、通信制御装置20は、ACKメッセージをアプリケーション・サーバ10へ送信する(ステップS419)。これにより、アプリケーション・サーバ10と通信制御装置20との間のセッションが確立される。
 次に、通信制御装置20が図7に示したシナリオ情報を選択する場合を想定する。この場合、図11に示したように、先ず、ユーザ端末(第1のユーザ端末)31は、INVITEメッセージを通信制御装置20へ送信する(ステップS501)。
 これにより、通信制御装置20は、1番目のINVITEメッセージを受信する。即ち、通信制御装置20は、第1のユーザ端末31との間でセッションを確立するためのシーケンス#1を実行する。加えて、通信制御装置20は、要素「event」の属性「eventname」の値「rcv1stINV」により特定されるイベント(即ち、1番目のINVITEメッセージの受信)が実行されたことを検出する。
 従って、通信制御装置20は、アプリケーション・サーバ10との間でセッションを確立するためのシーケンス#2を新たに実行する。ここで、この新たに実行されるシーケンスは、「snd1stINV」により特定されるシーケンスである。更に、通信制御装置20は、この新たに実行されるシーケンス#2(第1のシーケンス)と、第1のユーザ端末31との間でセッションを確立するためのシーケンス#1(即ち、「rcv1stINV」により特定されるシーケンス、第2のシーケンス)と、を同期させる。
 より具体的に述べると、通信制御装置20は、INVITEメッセージをアプリケーション・サーバ10へ送信する(ステップS502)。
 その後、アプリケーション・サーバ10は、通信制御装置20との間でセッションを新たに確立するため、INVITEメッセージを通信制御装置20へ送信する(ステップS503)。
 これにより、通信制御装置20は、2番目のINVITEメッセージを受信する。即ち、通信制御装置20は、アプリケーション・サーバ10との間でセッションを確立するためのシーケンス#3を実行する。加えて、通信制御装置20は、要素「event」の属性「eventname」の値「rcv2ndINV」により特定されるイベント(即ち、2番目のINVITEメッセージの受信)が実行されたことを検出する。
 従って、通信制御装置20は、第2のユーザ端末32との間でセッションを確立するためのシーケンス#4を新たに実行する。ここで、この新たに実行されるシーケンスは、「snd2ndINV」により特定されるシーケンスである。更に、通信制御装置20は、この新たに実行されるシーケンス#4(第1のシーケンス)と、アプリケーション・サーバ10との間でセッションを確立するためのシーケンス#3(即ち、「rcv2ndINV」により特定されるシーケンス、第2のシーケンス)と、を同期させる。
 より具体的に述べると、通信制御装置20は、INVITEメッセージを第2のユーザ端末32へ送信する(ステップS504)。これにより、第2のユーザ端末32は、18xメッセージを通信制御装置20へ送信する(ステップS505)。そして、通信制御装置20は、第2のユーザ端末32から18xメッセージを受信すると、18xメッセージをアプリケーション・サーバ10へ送信する(ステップS506)。
 その後、第2のユーザ端末32は、ステップS504にて受信したINVITEメッセージに対する200メッセージを通信制御装置20へ送信する(ステップS507)。
 これにより、通信制御装置20は、要素「newcall」の属性「callname」の値「snd2ndINV」により特定されるシーケンスにおいて、200メッセージを受信する。即ち、通信制御装置20は、要素「eventnotify」の属性「sipevent」の値「200ok」により特定されるイベント(即ち、200メッセージの受信)が実行されたことを検出する。
 次いで、18xメッセージを通信制御装置20へ送信する(ステップS508)。そして、通信制御装置20は、アプリケーション・サーバ10から18xメッセージを受信すると、18xメッセージを第1のユーザ端末31へ送信する(ステップS509)。
 その後、通信制御装置20は、ステップS503にて受信したINVITEメッセージに対する200メッセージをアプリケーション・サーバ10へ送信する(ステップS510)。
 次いで、アプリケーション・サーバ10は、ACKメッセージを通信制御装置20へ送信する(ステップS511)。これにより、アプリケーション・サーバ10と通信制御装置20との間のセッションが確立される。
 次いで、アプリケーション・サーバ10は、ステップS502にて受信したINVITEメッセージに対する200メッセージを通信制御装置20へ送信する(ステップS512)。そして、通信制御装置20は、アプリケーション・サーバ10から200メッセージを受信すると、ステップS501にて受信したINVITEメッセージに対する200メッセージを第1のユーザ端末31へ送信する(ステップS513)。
 次いで、通信制御装置20は、ACKメッセージをアプリケーション・サーバ10へ送信する(ステップS514)。これにより、アプリケーション・サーバ10と通信制御装置20との間のセッションが確立される。
 ところで、通信制御装置20は、ステップS507にて、ヘッダ内の「X-Service-Name」の値が、「AnsMachine」である200メッセージを第2のユーザ端末32から受信している。
 従って、通信制御装置20は、要素「releasecall」の属性「name」の値「rcv2ndINV」により特定されるシーケンス#3により確立されたセッションを終了させる。このとき、通信制御装置20は、終了させるセッションに係るシーケンス#3と同期されているシーケンス#4に係るセッションを終了させない。即ち、通信制御装置20は、シーケンス#3及びシーケンス#4の同期を解除する。
 具体的には、通信制御装置20は、BYEメッセージをアプリケーション・サーバ10へ送信する(ステップS515)。これにより、アプリケーション・サーバ10は、ステップS515にて受信したBYEメッセージに対する200メッセージを通信制御装置20へ送信する(ステップS516)。
 これにより、アプリケーション・サーバ10と通信制御装置20との間のセッション(シーケンス#3を実行することにより確立されたセッション)が終了する。
 更に、通信制御装置20は、要素「releasecall」の属性「name」の値「snd1stINV」により特定されるシーケンス#2により確立されたセッションを終了させる。このとき、通信制御装置20は、終了させるセッションに係るシーケンス#2と同期されているシーケンス#1に係るセッションを終了させない。即ち、通信制御装置20は、シーケンス#2及びシーケンス#1の同期を解除する。
 具体的には、通信制御装置20は、BYEメッセージをアプリケーション・サーバ10へ送信する(ステップS517)。これにより、アプリケーション・サーバ10は、ステップS517にて受信したBYEメッセージに対する200メッセージを通信制御装置20へ送信する(ステップS518)。
 これにより、アプリケーション・サーバ10と通信制御装置20との間のセッション(シーケンス#2を実行することにより確立されたセッション)が終了する。
 その後、第1のユーザ端末31は、ACKメッセージを通信制御装置20へ送信する(ステップS519)。これにより、第1のユーザ端末31と通信制御装置20との間のセッションが確立される。
 次いで、通信制御装置20は、ACKメッセージを第2のユーザ端末32へ送信する(ステップS520)。これにより、第2のユーザ端末32と通信制御装置20との間のセッションが確立される。
 以上、説明したように、本発明の第1実施形態に係る通信制御装置20によれば、通信制御装置20は、シナリオ情報に基づいて、第1のシーケンス及び第2のシーケンス間の同期を制御することができる。従って、ユーザは、シナリオ情報を適切に設定することにより、容易に複数のシーケンス間の同期を制御することができる。
 更に、第1実施形態に係る通信制御装置20は、同期情報が第1のシーケンス及び第2のシーケンスを同期させる旨を表す場合において、当該第1のシーケンスの実行を開始した時点以降、当該第2のシーケンスにおける残余の通信イベントのそれぞれを、当該第1のシーケンスにおける対応する通信イベントを実行した時点と略同時に実行する。
 これによれば、通信制御装置20は、第1のシーケンス及び第2のシーケンスをより一層確実に同期させることができる。
 加えて、第1実施形態に係る通信制御装置20は、同期情報が第1のシーケンス及び第2のシーケンスを同期させる旨を表す場合において、当該第1のシーケンスにより確立される第1のセッション、及び、当該第2のシーケンスにより確立される第2のセッションの一方が終了したとき、他方も終了させる。
 これによれば、無駄にセッションが継続することを回避することができる。
 更に、第1実施形態に係る通信制御装置20は、同期情報が第1のシーケンス及び第2のシーケンスを同期させる旨を表す場合において、当該第1のシーケンス及び当該第2のシーケンスの一方において、第1の通信装置から受信した第1のメディア情報と、他方において、第2の通信装置へ送信した第2のメディア情報と、が異なるとき、当該第1のメディア情報を当該第2の通信装置へ再送信する。
 これによれば、通信制御装置20は、シナリオ情報に基づいて、同期させる複数のシーケンス間で、メディア情報を整合させることができる。
<第2実施形態>
 次に、本発明の第2実施形態に係る通信制御装置について図12を参照しながら説明する。
 第2実施形態に係る通信制御装置100は、
 1つずつ順に実行される複数の通信イベントからなるシーケンスを実行することにより、通信装置との間でセッションを確立する装置である。
 更に、この通信制御装置100は、
 通信イベントと対応付けられ、シーケンスを新たに実行する旨を指示し、且つ、当該新たに実行されるシーケンスである第1のシーケンス、及び、他のシーケンスである第2のシーケンスを同期させるか否かを表す同期情報を含むシーケンス実行指示情報を含むシナリオ情報を受け付けるシナリオ情報受付部(シナリオ情報受付手段)101と、
 あるシーケンスを実行するとともに、当該シーケンスの実行中に、上記受け付けられたシナリオ情報に含まれるシーケンス実行指示情報と対応付けられた通信イベントが実行された場合、当該シーケンス実行指示情報が含む上記同期情報に基づいてシーケンスを新たに実行するシナリオ実行部(シナリオ実行手段)102と、
 を備える。
 これによれば、通信制御装置100は、シナリオ情報に基づいて、第1のシーケンス及び第2のシーケンス間の同期を制御することができる。従って、ユーザは、シナリオ情報を適切に設定することにより、容易に複数のシーケンス間の同期を制御することができる。
 以上、上記実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成及び詳細に、本願発明の範囲内において当業者が理解し得る様々な変更をすることができる。
 例えば、上記実施形態の変形例において、通信システムは、複数のアプリケーション・サーバを備えていてもよい。
 なお、上記各実施形態において通信システム1の各機能は、CPUがプログラム(ソフトウェア)を実行することにより実現されていたが、回路等のハードウェアにより実現されていてもよい。
 また、上記各実施形態においてプログラムは、記憶装置に記憶されていたが、コンピュータが読み取り可能な記録媒体に記憶されていてもよい。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
 また、上記実施形態の他の変形例として、上述した実施形態及び変形例の任意の組み合わせが採用されてもよい。
<付記>
 上記実施形態の一部又は全部は、以下の付記のように記載され得るが、以下には限られない。
(付記1)
 1つずつ順に実行される複数の通信イベントからなるシーケンスを実行することにより、通信装置との間でセッションを確立する通信制御装置であって、
 通信イベントと対応付けられ、シーケンスを新たに実行する旨を指示し、且つ、当該新たに実行されるシーケンスである第1のシーケンス、及び、他のシーケンスである第2のシーケンスを同期させるか否かを表す同期情報を含むシーケンス実行指示情報を含むシナリオ情報を受け付けるシナリオ情報受付手段と、
 あるシーケンスを実行するとともに、当該シーケンスの実行中に、前記受け付けられたシナリオ情報に含まれるシーケンス実行指示情報と対応付けられた通信イベントが実行された場合、当該シーケンス実行指示情報が含む前記同期情報に基づいてシーケンスを新たに実行するシナリオ実行手段と、
 を備える通信制御装置。
 これによれば、通信制御装置は、シナリオ情報に基づいて、第1のシーケンス及び第2のシーケンス間の同期を制御することができる。従って、ユーザは、シナリオ情報を適切に設定することにより、容易に複数のシーケンス間の同期を制御することができる。
(付記2)
 付記1に記載の通信制御装置であって、
 前記シナリオ実行手段は、前記同期情報が前記第1のシーケンス及び前記第2のシーケンスを同期させる旨を表す場合において、当該第1のシーケンスの実行を開始した時点以降、当該第2のシーケンスにおける残余の通信イベントのそれぞれを、当該第1のシーケンスにおける対応する通信イベントを実行した時点と略同時に実行するように構成された通信制御装置。
 これによれば、通信制御装置は、第1のシーケンス及び第2のシーケンスをより一層確実に同期させることができる。
(付記3)
 付記2に記載の通信制御装置であって、
 前記シナリオ実行手段は、前記同期情報が前記第1のシーケンス及び前記第2のシーケンスを同期させる旨を表す場合において、当該第1のシーケンスの実行を開始した時点以降、当該第2のシーケンスにおける残余の通信イベントのそれぞれを、当該第1のシーケンスにおける対応する通信イベントを実行した直後に実行するように構成された通信制御装置。
(付記4)
 付記1乃至付記3のいずれかに記載の通信制御装置であって、
 前記シナリオ実行手段は、前記同期情報が前記第1のシーケンス及び前記第2のシーケンスを同期させる旨を表す場合において、当該第1のシーケンスにより確立される第1のセッション、及び、当該第2のシーケンスにより確立される第2のセッションの一方が終了したとき、他方も終了させるように構成された通信制御装置。
 これによれば、無駄にセッションが継続することを回避することができる。
(付記5)
 付記1乃至付記4のいずれかに記載の通信制御装置であって、
 前記シナリオ実行手段は、前記同期情報が前記第1のシーケンス及び前記第2のシーケンスを同期させる旨を表す場合において、当該第1のシーケンス及び当該第2のシーケンスの一方において、通信先の通信装置である第1の通信装置から受信した第1のメディア情報と、他方において、通信先の通信装置である第2の通信装置へ送信した第2のメディア情報と、が異なるとき、当該第1のメディア情報を当該第2の通信装置へ再送信するように構成された通信制御装置。
 これによれば、通信制御装置は、シナリオ情報に基づいて、同期させる複数のシーケンス間で、メディア情報を整合させることができる。
(付記6)
 付記1乃至付記5のいずれかに記載の通信制御装置であって、
 前記シナリオ情報は、通信イベントと対応付けられ、且つ、前記第1のシーケンス及び前記第2のシーケンスの同期を解除する旨を指示する同期解除指示情報を含み、
 前記シナリオ実行手段は、
 前記シーケンスの実行中に、前記受け付けられたシナリオ情報に含まれる同期解除指示情報と対応付けられた通信イベントが実行された時点以降、前記第1のシーケンス及び前記第2のシーケンスの同期を解除するように構成された通信制御装置。
 これによれば、通信制御装置は、シナリオ情報に基づいて、複数のシーケンス間に設定されていた同期を解除することができる。
(付記7)
 付記1乃至付記6のいずれかに記載の通信制御装置であって、
 前記シナリオ情報は、通信イベントと対応付けられ、且つ、前記第1のシーケンス及び前記第2のシーケンスを同期させる旨を指示する同期設定指示情報を含み、
 前記シナリオ実行手段は、
 前記シーケンスの実行中に、前記受け付けられたシナリオ情報に含まれる同期設定指示情報と対応付けられた通信イベントが実行された時点以降、前記第1のシーケンス及び前記第2のシーケンスを同期させるように構成された通信制御装置。
 これによれば、通信制御装置は、シナリオ情報に基づいて、同期されていなかった複数のシーケンスを同期させることができる。
(付記8)
 付記1乃至付記7のいずれかに記載の通信制御装置であって、
 前記通信イベントは、SIP(Session Initiation Protocol)に従ったメッセージの送信、又は、受信である通信制御装置。
(付記9)
 付記1乃至付記8のいずれかに記載の通信制御装置であって、
 前記シナリオ情報は、XML(Extensible Markup Language)に従って記述された情報である通信制御装置。
(付記10)
 1つずつ順に実行される複数の通信イベントからなるシーケンスを実行することにより、通信装置との間でセッションを確立する通信制御方法であって、
 通信イベントと対応付けられ、シーケンスを新たに実行する旨を指示し、且つ、当該新たに実行されるシーケンスである第1のシーケンス、及び、他のシーケンスである第2のシーケンスを同期させるか否かを表す同期情報を含むシーケンス実行指示情報を含むシナリオ情報を受け付け、
 あるシーケンスを実行するとともに、当該シーケンスの実行中に、前記受け付けられたシナリオ情報に含まれるシーケンス実行指示情報と対応付けられた通信イベントが実行された場合、当該シーケンス実行指示情報が含む前記同期情報に基づいてシーケンスを新たに実行する、通信制御方法。
(付記11)
 付記10に記載の通信制御方法であって、
 前記同期情報が前記第1のシーケンス及び前記第2のシーケンスを同期させる旨を表す場合において、当該第1のシーケンスの実行を開始した時点以降、当該第2のシーケンスにおける残余の通信イベントのそれぞれを、当該第1のシーケンスにおける対応する通信イベントを実行した時点と略同時に実行するように構成された通信制御方法。
(付記12)
 1つずつ順に実行される複数の通信イベントからなるシーケンスを実行することにより、通信装置との間でセッションを確立する通信制御装置に、
 通信イベントと対応付けられ、シーケンスを新たに実行する旨を指示し、且つ、当該新たに実行されるシーケンスである第1のシーケンス、及び、他のシーケンスである第2のシーケンスを同期させるか否かを表す同期情報を含むシーケンス実行指示情報を含むシナリオ情報を受け付け、
 あるシーケンスを実行するとともに、当該シーケンスの実行中に、前記受け付けられたシナリオ情報に含まれるシーケンス実行指示情報と対応付けられた通信イベントが実行された場合、当該シーケンス実行指示情報が含む前記同期情報に基づいてシーケンスを新たに実行する、処理を実行させるための通信制御プログラム。
(付記13)
 付記12に記載の通信制御プログラムであって、
 前記同期情報が前記第1のシーケンス及び前記第2のシーケンスを同期させる旨を表す場合において、当該第1のシーケンスの実行を開始した時点以降、当該第2のシーケンスにおける残余の通信イベントのそれぞれを、当該第1のシーケンスにおける対応する通信イベントを実行した時点と略同時に実行するように構成された通信制御プログラム。
 なお、本発明は、日本国にて2011年5月31日に出願された特願2011-121237の特許出願に基づく優先権主張の利益を享受するものであり、当該特許出願にて開示された内容のすべてが本明細書に含まれるものとする。
 本発明は、複数の通信イベントからなるシーケンスを実行することにより、通信装置との間でセッションを確立する通信制御装置等に適用可能である。
1   通信システム
10  アプリケーション・サーバ
20  通信制御装置
21  シナリオ情報受付部
22  シナリオ実行部
31,32,… ユーザ端末
100 通信制御装置
101 シナリオ情報受付部
102 シナリオ実行部
NW  通信網

Claims (13)

  1.  1つずつ順に実行される複数の通信イベントからなるシーケンスを実行することにより、通信装置との間でセッションを確立する通信制御装置であって、
     通信イベントと対応付けられ、シーケンスを新たに実行する旨を指示し、且つ、当該新たに実行されるシーケンスである第1のシーケンス、及び、他のシーケンスである第2のシーケンスを同期させるか否かを表す同期情報を含むシーケンス実行指示情報を含むシナリオ情報を受け付けるシナリオ情報受付手段と、
     あるシーケンスを実行するとともに、当該シーケンスの実行中に、前記受け付けられたシナリオ情報に含まれるシーケンス実行指示情報と対応付けられた通信イベントが実行された場合、当該シーケンス実行指示情報が含む前記同期情報に基づいてシーケンスを新たに実行するシナリオ実行手段と、
     を備える通信制御装置。
  2.  請求項1に記載の通信制御装置であって、
     前記シナリオ実行手段は、前記同期情報が前記第1のシーケンス及び前記第2のシーケンスを同期させる旨を表す場合において、当該第1のシーケンスの実行を開始した時点以降、当該第2のシーケンスにおける残余の通信イベントのそれぞれを、当該第1のシーケンスにおける対応する通信イベントを実行した時点と略同時に実行するように構成された通信制御装置。
  3.  請求項2に記載の通信制御装置であって、
     前記シナリオ実行手段は、前記同期情報が前記第1のシーケンス及び前記第2のシーケンスを同期させる旨を表す場合において、当該第1のシーケンスの実行を開始した時点以降、当該第2のシーケンスにおける残余の通信イベントのそれぞれを、当該第1のシーケンスにおける対応する通信イベントを実行した直後に実行するように構成された通信制御装置。
  4.  請求項1乃至請求項3のいずれかに記載の通信制御装置であって、
     前記シナリオ実行手段は、前記同期情報が前記第1のシーケンス及び前記第2のシーケンスを同期させる旨を表す場合において、当該第1のシーケンスにより確立される第1のセッション、及び、当該第2のシーケンスにより確立される第2のセッションの一方が終了したとき、他方も終了させるように構成された通信制御装置。
  5.  請求項1乃至請求項4のいずれかに記載の通信制御装置であって、
     前記シナリオ実行手段は、前記同期情報が前記第1のシーケンス及び前記第2のシーケンスを同期させる旨を表す場合において、当該第1のシーケンス及び当該第2のシーケンスの一方において、通信先の通信装置である第1の通信装置から受信した第1のメディア情報と、他方において、通信先の通信装置である第2の通信装置へ送信した第2のメディア情報と、が異なるとき、当該第1のメディア情報を当該第2の通信装置へ再送信するように構成された通信制御装置。
  6.  請求項1乃至請求項5のいずれかに記載の通信制御装置であって、
     前記シナリオ情報は、通信イベントと対応付けられ、且つ、前記第1のシーケンス及び前記第2のシーケンスの同期を解除する旨を指示する同期解除指示情報を含み、
     前記シナリオ実行手段は、
     前記シーケンスの実行中に、前記受け付けられたシナリオ情報に含まれる同期解除指示情報と対応付けられた通信イベントが実行された時点以降、前記第1のシーケンス及び前記第2のシーケンスの同期を解除するように構成された通信制御装置。
  7.  請求項1乃至請求項6のいずれかに記載の通信制御装置であって、
     前記シナリオ情報は、通信イベントと対応付けられ、且つ、前記第1のシーケンス及び前記第2のシーケンスを同期させる旨を指示する同期設定指示情報を含み、
     前記シナリオ実行手段は、
     前記シーケンスの実行中に、前記受け付けられたシナリオ情報に含まれる同期設定指示情報と対応付けられた通信イベントが実行された時点以降、前記第1のシーケンス及び前記第2のシーケンスを同期させるように構成された通信制御装置。
  8.  請求項1乃至請求項7のいずれかに記載の通信制御装置であって、
     前記通信イベントは、SIP(Session Initiation Protocol)に従ったメッセージの送信、又は、受信である通信制御装置。
  9.  請求項1乃至請求項8のいずれかに記載の通信制御装置であって、
     前記シナリオ情報は、XML(Extensible Markup Language)に従って記述された情報である通信制御装置。
  10.  1つずつ順に実行される複数の通信イベントからなるシーケンスを実行することにより、通信装置との間でセッションを確立する通信制御方法であって、
     通信イベントと対応付けられ、シーケンスを新たに実行する旨を指示し、且つ、当該新たに実行されるシーケンスである第1のシーケンス、及び、他のシーケンスである第2のシーケンスを同期させるか否かを表す同期情報を含むシーケンス実行指示情報を含むシナリオ情報を受け付け、
     あるシーケンスを実行するとともに、当該シーケンスの実行中に、前記受け付けられたシナリオ情報に含まれるシーケンス実行指示情報と対応付けられた通信イベントが実行された場合、当該シーケンス実行指示情報が含む前記同期情報に基づいてシーケンスを新たに実行する、通信制御方法。
  11.  請求項10に記載の通信制御方法であって、
     前記同期情報が前記第1のシーケンス及び前記第2のシーケンスを同期させる旨を表す場合において、当該第1のシーケンスの実行を開始した時点以降、当該第2のシーケンスにおける残余の通信イベントのそれぞれを、当該第1のシーケンスにおける対応する通信イベントを実行した時点と略同時に実行するように構成された通信制御方法。
  12.  1つずつ順に実行される複数の通信イベントからなるシーケンスを実行することにより、通信装置との間でセッションを確立する通信制御装置に、
     通信イベントと対応付けられ、シーケンスを新たに実行する旨を指示し、且つ、当該新たに実行されるシーケンスである第1のシーケンス、及び、他のシーケンスである第2のシーケンスを同期させるか否かを表す同期情報を含むシーケンス実行指示情報を含むシナリオ情報を受け付け、
     あるシーケンスを実行するとともに、当該シーケンスの実行中に、前記受け付けられたシナリオ情報に含まれるシーケンス実行指示情報と対応付けられた通信イベントが実行された場合、当該シーケンス実行指示情報が含む前記同期情報に基づいてシーケンスを新たに実行する、処理を実行させるための通信制御プログラム。
  13.  請求項12に記載の通信制御プログラムであって、
     前記同期情報が前記第1のシーケンス及び前記第2のシーケンスを同期させる旨を表す場合において、当該第1のシーケンスの実行を開始した時点以降、当該第2のシーケンスにおける残余の通信イベントのそれぞれを、当該第1のシーケンスにおける対応する通信イベントを実行した時点と略同時に実行するように構成された通信制御プログラム。
PCT/JP2012/003014 2011-05-31 2012-05-09 通信制御装置 WO2012164830A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US14/122,220 US20140101224A1 (en) 2011-05-31 2012-05-09 Communication control device
JP2013517834A JP5668846B2 (ja) 2011-05-31 2012-05-09 通信制御装置
CN201280026649.XA CN103609086B (zh) 2011-05-31 2012-05-09 通信控制装置
EP12792885.1A EP2717521A4 (en) 2011-05-31 2012-05-09 COMMUNICATION CONTROL DEVICE

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011121237 2011-05-31
JP2011-121237 2011-05-31

Publications (1)

Publication Number Publication Date
WO2012164830A1 true WO2012164830A1 (ja) 2012-12-06

Family

ID=47258708

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/003014 WO2012164830A1 (ja) 2011-05-31 2012-05-09 通信制御装置

Country Status (5)

Country Link
US (1) US20140101224A1 (ja)
EP (1) EP2717521A4 (ja)
JP (1) JP5668846B2 (ja)
CN (1) CN103609086B (ja)
WO (1) WO2012164830A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015090656A (ja) * 2013-11-07 2015-05-11 株式会社三菱東京Ufj銀行 インターネットバンキングシステム及び不正アクセス遮断用中継装置
JP2020107340A (ja) * 2019-12-26 2020-07-09 株式会社三菱Ufj銀行 インターネットバンキングシステム及び不正アクセス遮断用中継装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006196956A (ja) * 2005-01-11 2006-07-27 Matsushita Electric Ind Co Ltd 端末装置
JP2006203311A (ja) 2005-01-18 2006-08-03 Oki Electric Ind Co Ltd 呼制御システム、呼制御方法、および呼制御プログラム
JP2010199854A (ja) * 2009-02-24 2010-09-09 Oki Networks Co Ltd アプリケーション提供装置、プログラム及び方法、並びにネットワークシステム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7089534B2 (en) * 2002-05-01 2006-08-08 International Business Machines Corporation Model based test generation for validation of parallel and concurrent software
EP1538778A1 (fr) * 2003-12-05 2005-06-08 Andrea Informatique SARL Système de génération automatique de tests pour valider un appareil de télécommunication
CN101494656A (zh) * 2008-01-22 2009-07-29 华为技术有限公司 Sip业务增强的方法及sip代理服务器
US8281039B2 (en) * 2008-09-04 2012-10-02 University Of Ottawa Reconfigurable multimedia collaboration system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006196956A (ja) * 2005-01-11 2006-07-27 Matsushita Electric Ind Co Ltd 端末装置
JP2006203311A (ja) 2005-01-18 2006-08-03 Oki Electric Ind Co Ltd 呼制御システム、呼制御方法、および呼制御プログラム
JP2010199854A (ja) * 2009-02-24 2010-09-09 Oki Networks Co Ltd アプリケーション提供装置、プログラム及び方法、並びにネットワークシステム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2717521A4

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015090656A (ja) * 2013-11-07 2015-05-11 株式会社三菱東京Ufj銀行 インターネットバンキングシステム及び不正アクセス遮断用中継装置
JP2020107340A (ja) * 2019-12-26 2020-07-09 株式会社三菱Ufj銀行 インターネットバンキングシステム及び不正アクセス遮断用中継装置

Also Published As

Publication number Publication date
EP2717521A4 (en) 2015-03-18
CN103609086B (zh) 2016-03-16
JP5668846B2 (ja) 2015-02-12
US20140101224A1 (en) 2014-04-10
EP2717521A1 (en) 2014-04-09
CN103609086A (zh) 2014-02-26
JPWO2012164830A1 (ja) 2015-02-23

Similar Documents

Publication Publication Date Title
US8850031B2 (en) Pairing system, pairing management device, pairing method, and program
JP4870760B2 (ja) 無線ネットワークにおけるハンドオーバネゴシエーションの方法及びシステム
EP4009549A1 (en) Time synchronization method and apparatus, computer readable medium, and electronic device
JP2014531786A (ja) 協働環境におけるフロー制御のためのおよび信頼性のある通信のための方法
JP2018093433A (ja) 通信システム、画像形成装置とその制御方法、及びプログラム
CN110944311A (zh) 一种分配无线耳机的时隙的方法及采用该方法的无线耳机
JP5668846B2 (ja) 通信制御装置
US9363290B2 (en) Access control information generating system
JP2009232252A (ja) Ip電話装置
CN111866969B (zh) 一种数据处理方法、通信装置和系统
JP7204940B2 (ja) 通信方法、装置及びデバイス
JP2015207801A (ja) 通信装置
WO2016206358A1 (zh) 一种通信方法、装置及融合通信设备
JP6721471B2 (ja) 情報処理装置、及びプログラム
US20240015063A1 (en) Communication system, construction method, and recording medium
US11617106B2 (en) Information processing apparatus, information processing method, and non-transitory computer readable medium
JP2017147484A (ja) 無線端末装置、通信システム、通信方法
JP2024015873A (ja) 端末装置、基地局装置、および通信方法。
JP2016152452A (ja) 情報処理装置、情報処理方法及びプログラム
JP6532342B2 (ja) 通信装置、制御方法及びプログラム
JP6085008B2 (ja) 中継装置および中継プログラム
JP4505359B2 (ja) 遠隔制御システムおよび方法、プログラム
JP2022151391A (ja) 情報処理装置、情報処理システム及び情報処理プログラム
WO2016185686A1 (ja) 基地局、無線通信システム、通信方法
JP2009206648A (ja) シグナリングサーバ、データ通信システム、シグナリング処理代行方法およびプログラム

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201280026649.X

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12792885

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013517834

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14122220

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE