CA2395574A1 - Improved session initiation protocol (sip) - Google Patents

Improved session initiation protocol (sip) Download PDF

Info

Publication number
CA2395574A1
CA2395574A1 CA002395574A CA2395574A CA2395574A1 CA 2395574 A1 CA2395574 A1 CA 2395574A1 CA 002395574 A CA002395574 A CA 002395574A CA 2395574 A CA2395574 A CA 2395574A CA 2395574 A1 CA2395574 A1 CA 2395574A1
Authority
CA
Canada
Prior art keywords
sip
java code
sip message
client
java
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CA002395574A
Other languages
French (fr)
Other versions
CA2395574C (en
Inventor
Michael O'doherty
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Rockstar Consortium US LP
Original Assignee
Individual
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 Individual filed Critical Individual
Publication of CA2395574A1 publication Critical patent/CA2395574A1/en
Application granted granted Critical
Publication of CA2395574C publication Critical patent/CA2395574C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/72Finding out and indicating number of calling subscriber
    • 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/1101Session protocols
    • H04L65/1104Session initiation protocol [SIP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/42136Administration or customisation of services
    • H04M3/42178Administration or customisation of services by downloading data to substation equipment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M7/00Arrangements for interconnection between switching centres
    • H04M7/006Networks other than PSTN/ISDN providing telephone service, e.g. Voice over Internet Protocol (VoIP), including next generation networks with a packet-switched transport layer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/549Remote execution
    • 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/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2203/00Aspects of automatic or semi-automatic exchanges
    • H04M2203/20Aspects of automatic or semi-automatic exchanges related to features of supplementary services
    • H04M2203/2033Call handling or answering restrictions, e.g. specified by the calling party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2242/00Special services or facilities
    • H04M2242/22Automatic class or number identification arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/42025Calling or Called party identification service
    • H04M3/42034Calling party identification service
    • H04M3/42042Notifying the called party of information on the calling party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/42025Calling or Called party identification service
    • H04M3/42034Calling party identification service
    • H04M3/42059Making use of the calling party identifier
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/436Arrangements for screening incoming calls, i.e. evaluating the characteristics of a call before deciding whether to answer it
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13003Constructional details of switching devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/1305Software aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13091CLI, identification of calling line
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13093Personal computer, PC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13095PIN / Access code, authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13106Microprocessor, CPU
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13173Busy signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13175Graphical user interface [GUI], WWW interface, visual indication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13176Common channel signaling, CCS7
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13196Connection circuit/link/trunk/junction, bridge, router, gateway
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13204Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13389LAN, internet

Abstract

Modifications to SIP are made which significantly extend the functionality of SIP for example by allowing a service for automatically setting up multi-media conferences to be easily provided.
SIP messages are associated with computer software code such as Java byte code, Java applets or mobile autonomous software agents. An example of a mobile autonomous agent is a Java mobile agent. This computer software code may be contained in the body of a SIP message or an address indicating where the computer software code is located is stored in the SIP message. SIP clients are arranged such that on receipt of a SIP message that has been associated with computer software code, that code is executed by a processor associated with the SIP client. For example, in the case that Java applets are contained in a SIP message these are executed by a Java Virtual Machine associated with the SIP
client. If a Java mobile agent is contained in the SIP message this executes on a Java Mobile Agent Virtual Machine associated with the SIP client. In one example, such computer software code must always be executed by the processor associated with the SIP client before that SIP client carries out any other actions related to the SIP
message. Preferably an indicator is put into the header of a SIP
message to indicate that it has been associated with computer software code, and SIP clients are arranged to detect the presence of such indicators. An application programming interface is created in order that the computer software code may control the SIP client and/or any processor associated with that SIP client. In one example, computer software code is associated with SIP messages in order that a service for automatically setting up multi-media conferences is provided.

Claims (25)

1. A method of communicating between a first and a second node in a communications network (1), each of said nodes comprising a SIP client (11), said method comprising the steps of:-(I) associating Java code with a SIP message; characterised in that either said Java code is added to that SIP message or an address is added to that SIP
message which indicates where the Java code is stored and wherein said method further comprises:

(ii) sending the SIP message and added Java code or address from the first SIP
client associated with the first node to the second SIP client associated with the second node; and (iii) executing the Java code using the second node before any further actions relating to the SIP message are carried out at the second node.
2. A method as claimed in claim 1 wherein said address is a universal resource locator (URL).
3. A method as claimed in claim 7 wherein said Java code comprises Java byte code.
4. A method as claimed in claim 1 wherein said Java code comprises one or more Java applets.
5. A method as claimed in claim 1 wherein said Java code comprises one or more mobile automated software agents.
6. A method as claimed in claim 1 wherein said second node comprises a Java virtual machine.
7. A method as claimed in claim 1 wherein the Java code is added to the body of the SIP message.
8. A method as claimed in claim 1 which further comprises adding an indicator to a header of the SIP message in order to indicate the presence of the Java code or address arid arranging the second SIP client to recognise the indicator.
9. A method as claimed in claim 1 which further comprises the step of proceeding with any SIP process related to the SIP message.
10. A method as claimed in claim 8 wherein said second SIP client is arranged such that on receipt of a SIP message containing such an indicator, the Java code associated with the SIP message is executed by the second node before that second node carries out any other processes related to the SIP
message.
11. A method as claimed in claim 1 wherein said Java code is arranged to interact with the second SIP client via a specified application programming interface.
12. A method as claimed in claim 1 wherein said Java code is arranged to interact with the processor associated with the second SIP client via a specified application programming interface.
13. A method as claimed in claim 1 wherein said Java code is arranged to set up a multimedia conference call.
14. A method as claimed in claim 1 wherein said Java code is arranged to upgrade or replace said SIF client.
15. A method as claimed in claim 1 wherein said Java code is arranged to test said second node.
16. A method as claimed in claim 1 wherein said Java code is arranged to forward a call from the first to the second node.
17. A communications network node comprising:
(i) a SIP client (11);

(ii) an input (12) arranged to receive SIP messages at least some of which are associated with Java code; characterised in that each received SIP message which is associated with Java code either comprises Java code or comprises an address which indicates where Java code is stored and wherein said communications network node further comprises:

(iii) a processor (13) arranged such that in use, when a SIP message is received, any Java code associated with that SIP message is executed by the processor before any further actions relating to that SIP message are carried out by the processor.
18. A communications network node as claimed in claim 12 wherein said processor (13) comprises a Java virtual machine.
19. A communications network node as claimed in claim 12 which further comprises an application programming interface arranged to allow the Java code to interact with the SIP client (11).
20. A communications network node as claimed in claim 12 wherein said processor (13) further comprises a detector arranged to detect an indicator in a received SIP message which indicates that Java code is associated with that SIP message.
21. A computer program arranged to control a communications network node, said node comprising a SIP client (11) and a processor (13), characterised in that said computer program is arranged to control the node such that if a SIP
message is received by the SIP client, said received SIP message either comprising Java code or comprising an address which indicates where the Java code is stored, then the Java code is executed by the processor (13) before any further actions relating to that SIP message are carried out by the processor.
22. A computer program as claimed in claim 21 which is stored on a computer readable medium.
23. A communications network (1) comprising a plurality of communications network nodes (10) each such node comprising:

(i) a SIP client (11);

(ii) an input (12) arranged to receive SIP messages at least some of which are associated with Java code by either comprising Java code or comprising an address which indicates where Java code is stored; and (iii) a processor (13) arranged such that in use, when a SIP message is received, any Java code associated with that SIP message is executed by the processor (13) before any further actions relating to that SIP message are carried out by the processor.
24. A method of setting up s conference call between two or more parties, each party comprising a SIP client (11) and a host processor (13), characterised in that said method comprises the steps of:

(i) associating Java code with a SIP message by either adding the Java code to that SIP message or by adding an address to that SIP message which indicates where the Java code is stored;

(ii) sending the SIP message and added to Java code or added address to each of the parties;

(iii) executing the Java code at each of the host processors before any further actions relating to that SIP message are carried out by the host processors.
25. A method as claimed in claim 24 wherein the Java code is arranged to take into account capabilities of each host processor.

28. A method as claimed in claim 24 wherein said conference call is a multimedia conference call.

21. A system for automatically setting up a conference call between two or more parties, each party comprising a SIP client (11) and a host processor (13), characterised in that said system comprises:- a processor for associating Java code with a S1P message by either adding the Java code to that SIP
message or by adding an address to that SIP message which indicates where the Java code is stored and for sending that SIP message to each of the parties; and wherein each of said host processors is arranged to execute the Java code in use, when the SIP message is received and before any further actions relating to that SIP message are carried out by the host processors.

28. A method of upgrading or replacing interconnected SIP clients (11) each SIP
client being associated with a host processor (73) characterised in that said method comprises the steps of:-(i) associating Java code suitable for said upgrade or replacement with a SIP
message by either adding the Java code to that SIP message or by adding an address to that SIP message which indicates where the Java code is stored;

(ii) sending the SIP message, and added Java code or added address to each of the SIP clients; and (iii) executing the Java code at each of the host processors before any further actions relating to that SIP message are carried out by the host processors.

29. A method of testing members of a group of SIP clients each SIP client (11) being associated with a host processor (13) characterised in that said method comprises the steps of:-(i) associating Java code suitable for said testing with a SIP message by either adding the Java code to that SIP message or by adding an address to that SIP
message which indicates where the Java code is stored;

(ii) sending the SIP message and added Java code or added address to one of the SIP clients;

31a (iii) executing the Java code at the host processor associated with that S1P
client in order to obtain test results and before any further actions relating to that SIP message are carried out by the host processors; and (iv) repeating steps (ii) to (iii) for each of the other SIP clients in the group.

30. A method of forwarding a call from a first SIP client (11) to a second SIP
client, each of said SIP clients being associated with a host processor (13), said method comprising the steps of:-(i) receiving a call at the first SIP client and characterised in that If that call is not answered then associating Java code with a SIP message by either adding the Java code to that SIP message or by adding an address to chat SIP
message which indicates where the Java code is stored said Java code being arranged to forward a call;

(ii) sending the SIP message and added Java code or added address from the first SIP client to a specified second SIP client; and (iii) executing the Java code using the host processor associated with the second SIP client such that the call is forwarded to the second SIP client and before any further actions relating to that SIP message are carried out by the host processor associated with the second SIP client.
CA2395574A 1999-12-22 2000-12-19 Improved session initiation protocol (sip) Expired - Fee Related CA2395574C (en)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US17177799P 1999-12-22 1999-12-22
US17180199P 1999-12-22 1999-12-22
US60/171,777 1999-12-22
US60/171,801 1999-12-22
US09/520,853 US7743149B1 (en) 1999-12-22 2000-03-07 SIP messages carrying executable computer software code
US09/520,853 2000-03-07
PCT/GB2000/004962 WO2001047213A1 (en) 1999-12-22 2000-12-19 Improved session initiation protocol (sip)

Publications (2)

Publication Number Publication Date
CA2395574A1 true CA2395574A1 (en) 2001-06-28
CA2395574C CA2395574C (en) 2010-05-04

Family

ID=27390022

Family Applications (1)

Application Number Title Priority Date Filing Date
CA2395574A Expired - Fee Related CA2395574C (en) 1999-12-22 2000-12-19 Improved session initiation protocol (sip)

Country Status (6)

Country Link
US (1) US7743149B1 (en)
EP (1) EP1247387B1 (en)
AU (1) AU2017001A (en)
CA (1) CA2395574C (en)
DE (1) DE60016037T2 (en)
WO (1) WO2001047213A1 (en)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AT411511B (en) * 2002-01-23 2004-01-26 Kapsch Carriercom Ag DEVICE AND METHOD FOR SIGNALING THE CALLER ID AT A DISTANT LOCATION
DE60302863T2 (en) * 2003-01-10 2006-09-14 Alcatel Signaling in controlled active networks
DE10349658B4 (en) 2003-10-24 2018-08-16 Intel Deutschland Gmbh Method for mobile data transmission
US20080208993A1 (en) * 2005-06-10 2008-08-28 Robert Skog Method For Distributing New Services in an Internet Multimedia Subsystem (Ims), and a Node Adapted Therefore
ES2273603B1 (en) * 2005-10-26 2008-03-16 Vodafone Españe, S.A. IP SERVICES ENABLING SYSTEM (INTERNET PROTOCOL) FOR USER TERMINALS BASED ON SIP SIGNALING (SESSION INITIATION PROTOCOL).
JP4910542B2 (en) * 2006-07-27 2012-04-04 富士通株式会社 SIP message delivery program
ES2323106B1 (en) * 2006-11-06 2010-04-21 Vodafone España, S.A. METHOD, NETWORK AND DEVICE OF LOCATION, COMMUNICATION AND MIGRATION OF MOBILE AGENTS.
EP2656571B1 (en) * 2010-12-21 2018-05-23 Telefonaktiebolaget LM Ericsson (publ) Delivery and execution of logic in user terminal in ims session
US20130061153A1 (en) * 2011-09-07 2013-03-07 Avaya Inc. System and Method for Inserting a Control System Into a Conference
US11588898B2 (en) 2018-12-06 2023-02-21 Telefonaktiebolaget Lm Ericsson (Publ) Controlling communication session handling at a user equipment using a script generated by an application server
KR20210049438A (en) * 2019-10-25 2021-05-06 삼성전자주식회사 Electronic device and method for controlling funtion execution using decentralized network

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5423042A (en) * 1992-10-23 1995-06-06 International Business Machines Corporation Remote procedure execution
US6487607B1 (en) * 1998-02-26 2002-11-26 Sun Microsystems, Inc. Methods and apparatus for remote method invocation
US6446070B1 (en) * 1998-02-26 2002-09-03 Sun Microsystems, Inc. Method and apparatus for dynamic distributed computing over a network
US6393497B1 (en) * 1998-03-20 2002-05-21 Sun Microsystems, Inc. Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
US5884316A (en) * 1996-11-19 1999-03-16 Microsoft Corporation Implicit session context system with object state cache
US6014688A (en) * 1997-04-25 2000-01-11 Postx Corporation E-mail program capable of transmitting, opening and presenting a container having digital content using embedded executable software
US6003082A (en) * 1998-04-22 1999-12-14 International Business Machines Corporation Selective internet request caching and execution system
US6175868B1 (en) * 1998-05-15 2001-01-16 Nortel Networks Limited Method and apparatus for automatically configuring a network switch
US6282193B1 (en) * 1998-08-21 2001-08-28 Sonus Networks Apparatus and method for a remote access server
US6636965B1 (en) * 1999-03-31 2003-10-21 Siemens Information & Communication Networks, Inc. Embedding recipient specific comments in electronic messages using encryption
US6567399B1 (en) * 1999-05-05 2003-05-20 3Com Corporation Hi-fidelity line card
US6446111B1 (en) * 1999-06-18 2002-09-03 Epicrealm Operating Inc. Method and apparatus for client-server communication using a limited capability client over a low-speed communications link
US6438555B1 (en) * 1999-11-02 2002-08-20 Nortel Networks Limited Method and apparatus for accessing an ordered array structure
US6434143B1 (en) * 1999-11-08 2002-08-13 Mci Worldcom, Inc. Internet protocol telephony voice/video message deposit and retrieval
US6512818B1 (en) * 1999-11-17 2003-01-28 Mci Worldcom, Inc. Method and system for releasing a voice response unit from a protocol session
US7050861B1 (en) * 1999-12-22 2006-05-23 Nortel Networks Limited Controlling a destination terminal from an originating terminal
US6421674B1 (en) * 2000-02-15 2002-07-16 Nortel Networks Limited Methods and systems for implementing a real-time, distributed, hierarchical database using a proxiable protocol
US7050661B2 (en) * 2000-03-27 2006-05-23 Tml Photonics, Inc. Process to create artificial nerves for biomechanical systems using optical waveguide network
US7010727B1 (en) * 2001-06-15 2006-03-07 Nortel Networks Limited Method and system for negotiating compression techniques to be utilized in packet data communications

Also Published As

Publication number Publication date
DE60016037D1 (en) 2004-12-23
WO2001047213A1 (en) 2001-06-28
DE60016037T2 (en) 2005-03-31
AU2017001A (en) 2001-07-03
CA2395574C (en) 2010-05-04
EP1247387B1 (en) 2004-11-17
EP1247387A1 (en) 2002-10-09
US7743149B1 (en) 2010-06-22

Similar Documents

Publication Publication Date Title
EP1836863B1 (en) Method, system and apparatus for providing virtual mobile phone number service
EP2620872B1 (en) Method and device for callback processing in telecommunication capacity opening
US7085258B2 (en) Instant messaging with voice conversation feature
US8639740B2 (en) Communication server with a service logic execution environment
US9271331B2 (en) Conditional execution of commands
JP2012253783A (en) Method and system for managing message threads in converged ip messaging service
WO2013042056A1 (en) Group chat across networks
CA2395574A1 (en) Improved session initiation protocol (sip)
US7577705B2 (en) Extensible communication controls
CN109218038B (en) Multi-language instant session platform
CN106161201B (en) method, device and system for participating in group chat by using mailbox account as identifier
CN1874610B (en) Method and system for debugging telephone call
RU2432715C2 (en) Delivery report in communication system
CN1988546A (en) Method and system for obtaining conversation start protocol news transmission path
JP2006101528A (en) Detection of looping communication channel
CN102158926B (en) Method and device for processing SDP (Session Description Protocol) request in media path optimizing process
WO2004012050A2 (en) Real-time communication applications and system
US11025773B1 (en) Virtual communication service for mobile devices
CN114615321A (en) Traffic processing method and device
CN114285658B (en) System mutual jump login-free method based on WeChat authorization login
US11275602B1 (en) Virtual communication service for mobile devices
CN108123974B (en) Network calling method and device
KR100798189B1 (en) Method for confirmating of a situation terminal different protocol
CN113709237A (en) Remote connection method, device, equipment, storage medium and program product
WO2010017844A1 (en) Controlling the charging for a composite service

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed

Effective date: 20161219