`
`8/1 6
`
`PCT/USZOO9/039371
`
`$1“im. fiamm
`V
`§
`..
`“NEALa smfiiar
`
`Césaéfi:
`3&8 ‘5‘qu A .
`
`ht
`
`wm 5§fifl§ A5353
`.
`‘
`__,’
`'
`wag} afi$\m
`
`
`imxlwgw
`
`
`m ex
`
`SllO
`
`
`
`Siviz‘m.9\YI\S§t&t&§\V\‘Q\\wfi§-fi§fifli
`13%figs:“
`
`: mmwm "'/ S9
`
`w
`: mfissm
`
`{2%me ‘* 3%
`
`SUBSTITUTE SHEET (RULE 26)
`
`TELESIGN EX1002
`
`Page 221
`TW_00011370
`
`TELESIGN EX1002
`Page 221
`
`
`
`WO 2009/124223
`
`9/1 6
`
`PCT/USZOO9/039371
`
`(ii: ‘ =
`'
`t '
`:
`'
`; n
`mfifififfiw
`Saw "f
`fig:@fifliiw
`‘
`'
`mks $sum my“
`- MW?-
`
`
`8110
`
`S5
`
`
`
`Pamm
`So NR3:
`‘a‘a‘ih 5:33?
`Wmmxfiw xiii:
`
`K
`
`’ WE‘VE-Km}?
`imenfikm mmm
`
`Sm.§n§£m«w§&mx§w
`
`SS
`
`’ 1%“:s? mtw':
`$§*&E.$R}1.%%‘8&8~Wfiw®\
`
`
`
`{Tml‘fif-QN
`
`38%; $1an
`
`W
`
`whmxmm
`N“ NEW“
`
`
`
`‘ méstum;m3 tfismgfix}
`
`
`FIGURE 8
`
`SUBSTITUTE SHEET (RULE 26)
`
`TELESIGN EX1002
`
`Page 222
`TW_00011371
`
`TELESIGN EX1002
`Page 222
`
`
`
`WO 2009/124223
`
`10/16
`
`PCT/USZOO9/039371
`
`mm Bazaar
`-n.-
`-
`damfimi Manda:
`
`‘_
`r.
`”95.123
`3‘fl 13$my fix C‘xfi
`
`35mm mm‘m
`V,
`‘:
`‘
`wag £33m;
`
`Emm w
`$21M
`
`Sl
`
`\ 3;
`
`"
`
`swag»):
`43m“: 1m
`V
`
`$110
`
`3it3§mrigmm
`
`1!} Nif‘ih‘o“
`WW Ni 5.33%.
`Wmmwfi. “A A ‘
`
`ST?S“ fi‘l‘fii‘x‘
`
`mg»: m mammmér
`
`11‘me Wk
`
`FIGURE 9
`
`SUBSTITUTE SHEET (RULE 26)
`
`TELESIGN EX1002
`
`Page 223
`TW_00011372
`
`TELESIGN EX1002
`Page 223
`
`
`
`WO 2009/124223
`
`1 1/16
`
`PCT/USZOO9/039371
`
`Ith m:
`Hit
`Jfififisfitfil .Hfinfilatt
`
`fi'fisavfi:
`Tfiil'm Em? {:fifi:
`
`‘fi‘fitfifi Mimi fififin
`.-_ Ta,
`Watts Efifim
`
`
`s1\_
`8110
`
`
`
`
`S5
`
`’ MY??? S‘ifififi‘fi.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`fitfitfi fififimfimfi
`
`
`
`
`
`
`by“? Wfififimii
`
`
`fimfifimfififififififitfififim
`3’ fitfi
`V
`figfittfi fifiwfifi
`
`SS
`
`
`
`t“ fifitfi {Rafi fifit
`fiéfibfiiffili WEN“? :‘kW
`
`2‘; ffifitgfi fifit fifififi
`tfifi ififififififi fi.
`
`3'
`
`FIGURE 10
`
`SUBSTITUTE SHEET (RULE 26)
`
`TELESIGN EX1002
`
`Page 224
`TW_00011373
`
`TELESIGN EX1002
`Page 224
`
`
`
`WO 2009/124223
`
`12/16
`
`PCT/USZOO9/039371
`
`3113385:
`Emma-E Emmes as me 3}- mm mma“
`uufi‘fifi‘fl Wsimifin:
`“5%. Rmfifl
`,
`.
`.
`WEE“ 39mm N3" message: ssmsssm
`RITE??? Wit-Es MEN
`
`mfimfisms
`KREM{Skis
`
`
`
`“$1§mm$
`New“
`
`S130
`
`51
`
`\
`,s
`m 2.
`inmw U5“
`)
`
`S 3
`
`{ER
`
`'
`
`S3
`
`\
`
`\
`
`$110
`
`
`
`S5
`Nssssssss
`mimfiss\wsfisfissmmm
`7
`7 ¢/ S9
`NE‘2“? E'E’EEE‘. SW3:
`1:, a: W; Esteemfis es msfimm‘sm is} was
`Km EHBE NE; JNKLQRXW
`“Fm E ' Ems}: W E‘s“?
`
`gags ”1&3?!ng
`El 9&1 ‘
`
`fléxfimfie 232%?sz «memefitxfifitsmmmmx :
`S5
`3‘in WEE?
`
`Ewifim‘cfim ' sfi‘mswmmfigéa
`ifigirsfi‘kfi
`
`asfigssas’i'wmm
`
`
`
`
`
`
`
`
`§§s§§ssi¢we,\gkififimmmme‘smxflmmx
`
`8%;ms"s2m3)“
`mm mmsesmss
`“muss
`
`Em {News
`2 m‘fim‘m&\HNEX§.T§.‘§R$W§K§§
`
`2
`
`W
`“\‘E‘
`
`s‘52 st fimemmt/ S9
`
`S7
`
`A/
`
`FIGURE 11
`
`SUBSTITUTE SHEET (RULE 26)
`
`TELESIGN EX1002
`
`Page 225
`TW_00011374
`
`TELESIGN EX1002
`Page 225
`
`
`
`WO 2009/124223
`
`13/16
`
`PCT/USZOO9/039371
`
`‘ Wfifim
`saws-flaw mgr
`
`
`SMS Interfaced
`Web Sgs‘axw
`
`8110
`
`
` SMS Device
`
`
`
`SMS Gatewa
`
`S 1 ‘ —> SMS Sent
`(at 1 PM)
`
`SS
`
`
`N???" “RN?
`twili0.C0m/callmeback/A49F57D
`
`
`mwmwam 4/ S9
`Callback SMS sender at source number at 5PM.
`
`
`NextURL: twilio.com/callmeback/SPM/A49F57D
`
`
`[S7
`
`>.\\\\\‘:-§;« .W 3‘:
`
`
`
`
`t¥.\\\\\\\‘t~:v
`
`Lookup SMS sender,
`call them at a stored
`convenient time at
`
`number specified in
`message.
`
`Call Initiated
`$120 /'to SMS sender
`at 5PM
`
`FIGURE 12
`
`Web Appiicatiun Web Application Web Applicatian
`Sewer N
`Server B
`Server A
`
`,
`0313 Hauter
`
`
`
`
`
`By A
`
`Cali} Sentmféled
`
`By B
`
` Gail Cont'ruélied
`
`Catt Cantrefiied
`
`By A
`
`(3313 Baniméiled
`
`By N
`
`8110
`
`FIGURE 13
`
`SUBSTITUTE SHEET (RULE 26)
`
`TELESIGN EX1002
`
`Page 226
`TW_00011375
`
`TELESIGN EX1002
`Page 226
`
`
`
`WO 2009/124223
`
`14/16
`
`PCT/USZOO9/039371
`
`Web Applicaticn WEB Applicafian Web Agppiinatfian
`Server N
`Server 13
`Server A
`
`7
`5313 ROME-T
`
`\.M\\
`
`
`\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
`
`kk\\
`.r$5»
`.
`§'
`//1
`\§
`
`. Sari CantmtE-efl
`By A
`
`$311? Gontroiied
`By B
`
`{3851 Sentmfied
`
`By A
`
`flail: Gantr‘aiied
`By M
`
`FIGURE 14
`
`SUBSTITUTE SHEET (RULE 26)
`
`TELESIGN EX1002
`
`Page 227
`TW_00011376
`
`TELESIGN EX1002
`Page 227
`
`
`
`WO 2009/124223
`
`15/16
`
`PCT/USZOO9/039371
`
`Case:
`Cali Router AP; for cal! hold
`
`Si
`
`Incoming Cat!
`
`Passesto hURLer with
`init URL twilio.com/app/
`
`l
`.
`Wt
`interceptor
`(init URL
`lockup)
`
`
`
`S7
`hURL Router
`JavaAGl Handier s3
`1
`55
`J
`) / 1
`HTTP POST: twilio.com/app/ ~
`*
`HTTP RESPONSE:
`
`Voice App
`Web Service
`
`S 120
`
`Greeting
`
`Voice App
`Web Hold Service
`
`S3
`
`I. Play greeting
`\, 89
`
`I
`‘
`Cal; Router API POST: can resource
`transfer call control to
`
`S 130
`
`-' ‘‘‘‘‘‘‘‘‘‘ \
`
`HTTP RESPONSE:
`
`E HTTP POST:twario.com/app/hord/
`\
`1.Pray:twifio.com/holdmusic
`
`S7
`
`K, 59
`
`.
`2
`
`8110
`
`twilio.com/app/hold/
`
`S120
`
`
`
`$130
`Carl Router AP! POST:caH resource
`transfer call contror to
`
`37
`V/
`
`twilio.com/app/
`
`HTTPPOST:twilio.c0m/app/ E
`
`FIGURE 15
`
`SUBSTITUTE SHEET (RULE 26)
`
`TELESIGN EX1002
`
`Page 228
`TW_00011377
`
`TELESIGN EX1002
`Page 228
`
`
`
`WO 2009/124223
`
`16/16
`
`PCT/USZOO9/039371
`
` y SJX‘ERK‘
`
`hem” R'sg‘
`
`
`" mxvxnx’
`
`l y ‘1g 3 V
`25'"
`
`$6
`
`
`
`A
`V\\\\\\\\\\\\ “\“\\“‘;
`"§
`
`§\5'
`
`\
`
`“'VK‘
`NWT“
`<'° £3»): .'\\\;\2}st mm» a “a,
`
`
`
`
`max Key
`
`#‘xsmts‘zm‘
`fiaw
`
`
`
`
`KKK-w
`My.»
`:9» Nflaami Na»: RWY}?
`mfifimmhwfiwm \x‘
`
`
`V N“ VVVVVVVVVVVVVVVVVVVV
`
`
`
`
`FIGURE 16
`
`SUBSTITUTE SHEET (RULE 26)
`
`TELESIGN EX1002
`
`Page 229
`TW_00011378
`
`TELESIGN EX1002
`Page 229
`
`
`
`INTERNATIONAL SEARCH REPORT
`
`lmemationa] application No.
`PCT/U82009/039371
`
`A.
`
`CLASSIFICATION OF SUBJECT MATTER
`
`IPC(8) - H04L 12/66 (2009.01)
`USPC - 370/352
`According to lntemational Patent Classification (lPC) or to both national classification and lPC
`B.
`FIELDS SEARCHED
`
`Minimum documentation searched (classification system followed by classification symbols)
`IPC(8) - H04L 12/66 (2009.01)
`USPC - 370l352
`
`Documentation searched other than minimum documentation to the extent that such documents are included in the fields searched
`
`Electronic data base consulted during the international search (name of data base and, where practicable, search terms used)
`MicroPatent
`
`C. DOCUMENTS CONSIDERED TO BE RELEVANT
`‘
`Relevant to claim No.
`Citation of document, with indication, where appropriate, of the relevant passages
`
`
`US 2007/0036143 A1 (ALT et al) 15 February 2007 (15.02.2007) entire document
`
`1-14, 16-19. 21-2527
`
`15. 20. 26
`
`US 2007/0242626 A1 (ALTBERG et al) 18 October 2007 (18.10.2007) entire document
`
`15, 20, 26
`
`El Further documents are listedin the continuation of Box C
`Special categories of cited documents:
`document defining the general state of the art whichts not considered
`to be ofparticular relevance
`earlier application or patent but published on or afier the international
`filing date
`document which may throw doubts on priority claim(s) or which is
`cited to establish the publication date of another citation or other
`special reason (as spec1fied)
`document referring to an oral disclosure, use. exhibition or other
`means
`
`“1”
`
`later document published after the international filing date or
`riority
`date and not in conflict with the applicationbut cited to un erstand
`the principle or theory underlying
`e invention
`“X” document of particular relevance; the claimed invention cannot be
`considered novel or cannot be considered to involve an inventive
`step when the document is taken alone
`document of particular relevance; the claimed invention cannot be
`considered to involve an inventive step when the document
`is
`combined with one or more other such documents such combination
`being obvious to a person skilled1n the art
`
`
`
`document published prior to the international filing date but later than
`the priority date claimed
`Date of the actual completion of the international search
`26 June 2009
`1 4 JUL 2009
`
`Authorized officer:
`Name and mailing address ofthe ISA/US
`Blaine R. Copenheaver
`Mail Stop PCT. Attn: ISA/US. Commissioner for Patents
`PO. Box 1450, Alexandria. Virginia 22313-1450
`PCT Helpdesk: 571-272-4303
`PCT 05?: 571-272-7774
`Facsimile No.
`571-273-3201
`
`& document member of the same patent family
`Date of mailing of the international search report
`
`Form PCT/ISA/ZIO (second sheet) (April 2005)
`
`TELESIGN EX1002
`
`Page 230
`TW_00011379
`
`TELESIGN EX1002
`Page 230
`
`
`
`W02010037064
`
`Publication Title:
`
`SYSTEM AND METHOD FOR PROCESSING MEDIA REQUESTS DURING A
`TELEPHONY SESSIONS
`
`Abstract:
`
`Abstract of WO 2010037064
`
`(A1) Translate this text In a preferred embodiment, the method of caching media
`used in a telephony application includes: receiving a media request; sending the
`media request to a media layer using HTTP; the a media layer performing the
`steps of checking in a cache for the media resource; processing the media
`request within a media processing server; and storing the processed media in the
`cache as a telephony compatible resource specified by a persistent address. The
`system of the preferred embodiment includes a call router and a media layer
`composed of a cache and media processing server.
`
`Courtesy of http://v3.espacenet.com
`
`This Patent PDF Generated by Patent Fefcher(R), a service of Stroke of Coior; inc.
`
`TELESIGN EX1002
`
`Page 231
`TW_00011380
`
`TELESIGN EX1002
`Page 231
`
`
`
`(12) INTERNATIONAL APPLICATION PUBLISHED UNDER THE PATENT COOPERATION TREATY (PCT)
`
`(19) World Intellectual Property Organization
`International Bureau
`
`1 April 2010 (01.04.2010) (10) International Publication Number
`
`(43) International Publication Date
`
`WO 2010/037064 A1
`
`
`(51) International Patent Classification:
`H04M 7/00 (2006.01)
`,
`.
`,
`(21) InternatlonalApphcatlon Number:
`PCT/US2009/058671
`
`(22) International Filing Date:
`28 September 2009 (28.09.2009)
`
`(72) Inventors; and
`(75) Inventors/Applicants O’or US only): LAWSON, Jeffrey
`[US/US]; 548 Market St #14510, San Francisco, CA
`94104 (US). WOLTHUIS, John [US/US]; 548 Market
`St #14510, San Francisco, CA 94104 (US). COOKE,
`Evan [US/US]; 548 Market St #14510, San Francisco,
`CA 94104 (US)
`
`English
`.
`Enghsh
`
`(25) Filing Language:
`_
`(26) Publicatlon Language:
`_
`_
`(30) Prlorlty Data:
`US
`61/100,578
`26 September 2008 (26.09.2008)
`US
`61/100,630
`26 September 2008 (26.09.2008)
`US
`61/100,627
`26 September 2008 (26.09.2008)
`US
`61/156,751
`2 March 2009 (02.03.2009)
`US
`61/156,746
`2 March 2009 (02.03.2009)
`US
`12/417,630
`2 Apr1l 2009 (02.04.2009)
`(for
`(71) Applicant
`all designated States
`except US):
`TWILIO INC. [US/US]; 548 Market St #14510, San
`Francisco, CA 94104 (US).
`
`(74) Agent: SCHOX, Jeffrey; 500 3rd Street #515, San Fran-
`cisco, CA 94107 (US).
`
`(81) Designated States (unless otherwise indicated, for every
`kind ofnational protection available): AE, AG, AL, AM,
`AO, AT, AU, AZ, BA, BB, BG, BH, BR, BW, BY, BZ,
`CA, CH, CL, CN, CO, CR, CU, CZ, DE, DK, DM, DO,
`DZ, EC, EE, EG, ES, FL GB, GD, GE, GH, GM, GT,
`HN, HR, HU, ID, IL, IN, IS, JP, KE, KG, KM, KN, KP,
`I<R, I<Za LA, LC, LI<, LR, LS, LT, LU, LY, MA, MD,
`ME, MG, MK, MN, MW, MX, MY, MZ, NA, NG, NI,
`NO» NZ» OM» PE» PG» PH» PL» PT» RO» RS» RU» SC» SD»
`SE, SG, SK, SL, SM, ST, SV, SY, TJ, TM, TN, TR, TT,
`TZ, UA, UG, US, UZ, VC, VN, ZA, ZM, ZW.
`
`(54) Title: SYSTEM AND METHOD FOR PROCESSING MEDIA REQUESTS DURING A TELEPHONY SESSIONS
`
`[Continued on nextpagej
`
`(57) Abstract: In a preferred embodiment, the method of
`caching media used in a telephony application includes:
`receiving a media request; sending the media request to a
`media layer using HTTP; the a media layer performing the
`steps of checking in a cache for the media resource; pro—
`cessing the media request within a media processing serv-
`er; and storing the processed media in the cache as a tele—
`phony compatible resource specified by a persistent ad-
`dress. The system of the preferred embodiment includes a
`call router and a media layer composed ofa cache and me-
`dia processing scrvcr.
`
`
`
`50
`22
`
`KP CALL ROUTER
`_ "HTTP, , “Wham J
`
`
`
`
`
`
`40
`I
`/
`
`I
`\
`HTTP
`HTTP
`45
`411
`
`41
`/ /
`/
`
`
`
`
`
`
`
`k H'TP CACHE
`<—> E A003 A
`
`
`
`
`
`
`
`
`
`44
`/' \ ENCYPT ON/
`3RD PARTY
`
`\
`HTTP
`HTTP
`DECRYPTION SERVER
`STORAGE SERVER
`/
`\
`"TEXT—TO—SPEECH"
`42
`TRANSCODING
`
`
`
`DMRV'CE—IqADA)”JI\‘43
`
`MEDIA LAYER
`
`
`
`
`AUDIO: MP3, WAV ETC.
`XML INSTRUCTIONS
`PLAIN TEXT
`
`26
`
`J
`[bCUSTOMER WEB APP
`
`
`FIG.
`
`11
`
`TELESIGN EX1002
`
`Page 232
`TW_00011381
`
`
`
`wo2010/037064A1|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||I|||||||||||||II||||||||||||I|I|
`
`TELESIGN EX1002
`Page 232
`
`
`
`WO 2010/037064 A1 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
`
`(84) Designated States (unless otherwise indicated, for every
`kind ofregional protection available): ARIPO (BW, GH,
`
`TR), OAPI (BF, BJ, CF, CG, CI, CM, GA, GN, GQ, GW,
`ML, MR, NE, SN, TD, TG).
`
`GM, KE, LS, MW, MZ, NA, SD, SL, SZ, TZ, UG, ZM, Published.
`ZW), Eurasian (AM, AZ, BY, KG, KZ, MD, RU, TJ,
`'
`TM), European (AT, BE, BG, CH, CY, CZ, DE, DK, EE, — with international search report (Art. 21(3))
`ES, FI, FR, GB, GR, HR, HU, IE, IS, IT, LT, LU, LV,
`MC, MK, MT, NL, NO, PL, PT, RO, SE, SI, SK, SM,
`
`TELESIGN EX1002
`
`Page 233
`TW_00011382
`
`TELESIGN EX1002
`Page 233
`
`
`
`WO 2010/037064
`
`PCT/US2009/058671
`
`SYSTEM AND METHOD FOR PROCESSING MEDIA REQUESTS
`
`DURING A TELEPHONY SESSIONS
`
`CROSS-REFERENCE TO RELATED APPLICATIONS
`
`[0001]
`
`This application is a continuation in part of prior application number
`
`12/417,630 filed 02 April 2009 and entitled “System and Method for Processing
`
`Telephony Sessions”, which claims the benefit of the following: US Provisional
`
`Application number 61/ 041,829 filed 02 April 2008 and entitled “System and Method
`
`for Processing Telephony Sessions”; US Provisional Application number 61/055,417
`
`filed on 22 May 2008 and entitled “System and Method for Processing SMS Messages”,
`
`US Provisional Application number 61/100,578 filed on 26 September 2008 and
`
`entitled “System and Method for Processing Telephony Sessions”, US Provisional
`
`Application number 61/156,746 filed on 02 March 2009 and entitled “System and
`
`Method for Processing Telephone Sessions”, and US Provisional Application number
`
`61/ 156,751 filed on 02 March 2009 and entitled “System and Method for Processing
`
`Telephony Sessions”.
`
`[0002]
`
`This application also claims the benefit of the following: US Provisional
`
`Application number 61/ 100,627 filed on 26 September 2008 and entitled “System and
`
`Method of Caching Media for Telephony Sessions” and US Provisional Application
`
`number 61/ 100,630 filed on 26 September 2008 and entitled “System and Method of
`
`Caching Media for Telephony Sessions.”
`
`TELESIGN EX1002
`
`Page 234
`TW_00011383
`
`TELESIGN EX1002
`Page 234
`
`
`
`WO 2010/037064
`
`PCT/US2009/058671
`
`[0003]
`
`All of priority documents identified in this section are incorporated in
`
`their entirety by this reference.
`
`TECHNICAL FIELD
`
`[0004]
`
`This
`
`invention relates generally to the telephony field, and more
`
`specifically to a new and useful system and method for processing media requests
`
`during telephony sessions in the telephony field.
`
`BACKGROUND
`
`[0005]
`
`In the last decade,
`
`legislation and the advent of Voice over Internet
`
`Protocol
`
`(VOIP) have
`
`revolutionized the
`
`communication industry with new
`
`technologies, business models, and service providers. Software and commodity
`
`hardware now provide an alternative to expensive carrier equipment. One can
`
`implement extensible call switching and voice application logic in Open source software
`
`applications, such as Asterisk and FreeSwitch. These new application stacks, however,
`
`usher in new complexities and challenges, requiring new skill sets to deploy, develop,
`
`and maintain. Deploying telephony services requires knowledge of voice networking and
`
`codecs, hardware or services to bridge servers to the public phone infrastructure, capital
`
`investment in hardware, and ongoing collocation of that hardware. These burdens are a
`
`mere prerequisite to developing the actual application, which requires developers to
`
`train in new languages,
`
`tools, and development environments. Even telephony
`
`applications that currently try to leverage a model more similar to web—development
`
`TELESIGN EX1002
`
`Page 235
`TW_00011384
`
`TELESIGN EX1002
`Page 235
`
`
`
`WO 2010/037064
`
`PCT/U82009/058671
`
`such as Voice Extensible Markup Language (VoiceXML), require the dedication to learn
`
`a new language and understand telephony interaction. Ongoing operation and
`
`maintenance of these services requires teams to adopt new analysis tools, performance
`
`metrics, and debugging methodologies. Developing even the simplest of voice services
`
`(such as a so—called “phone tree”) requires significant upfront and ongoing investment
`
`in specialized infrastructure, skills, and operations.
`
`[0006]
`
`In similar manner to how multimedia has impacted the advance of the
`
`Internet, interacting with media through telephony services is also becoming more
`
`important for telephony applications. However, media consumption through an internet
`
`browser and a telephony device are completely different experiences, each having
`
`different user expectations. Unlike websites, where users have been conditioned for
`
`loading times and processing time, phone users expect real—time results and often View
`
`processing delays as application annoyances. Internet media is inherently multimedia: a
`
`combination of text, images, video, audio, and other forms of multimedia. Telephony
`
`devices are limited in the format of media consumable by a user. In the case of a typical
`
`phone, audio with 8—bit PCM mono with 8 kHz bandwidth format is the native form.
`
`Tremendous amounts of processing must be performed by telephony applications to
`
`convert from internet media to telephony compatible media. The processing increases
`
`infrastructure costs, slows down the responsiveness of a telephony application, and
`
`overall, limits the possibilities of telephony applications. The inefficiency of media
`
`processing impacts not only one telephony application but all applications operating on
`
`a system. Thus, there is a need in the telephony field to create a new and useful system
`
`TELESIGN EX1002
`
`Page 236
`TW_00011385
`
`TELESIGN EX1002
`Page 236
`
`
`
`WO 2010/037064
`
`PCT/U82009/058671
`
`and method for processing media requests during telephony sessions. This invention
`
`provides such a new and useful system and method.
`
`SUMMARY
`
`[0007]
`
`The method of the preferred embodiment for processing telephony
`
`sessions include the steps of communicating with an application server using an
`
`application layer protocol, processing telephony instructions with a call router, and
`
`creating call router resources accessible through an Application Programming Interface
`
`(API). The method and system of the preferred embodiments enables web developers to
`
`use their existing skills and tools with the esoteric world of telephony, making telephony
`
`application development as easy as web programming. The method and system use the
`
`familiar web site visitor model to interact with a web developer’s application, with each
`
`step of the phone call analogous to a traditional page view. Within this model,
`
`developers reuse their existing tools and techniques, including familiar concepts such as
`
`H'I'I‘P redirects, accessing resources through an API, cookies, and mime—type responses
`
`to construct complex telephony applications. The method of processing telephony
`
`instructions and creating call router resources accessible through an API (a call router
`
`API) cooperatively function to enable a stateless and simple telephony language with
`
`more call router resources and information provided through the call router (preferably
`
`a REST API as is familiar to many web developers). In one embodiment, the telephony
`
`instructions set may have fewer than dozen verbs, simplifying the language so that
`
`developers can quickly learn and implement telephony applications, while the call
`
`TELESIGN EX1002
`
`Page 237
`TW_00011386
`
`TELESIGN EX1002
`Page 237
`
`
`
`WO 2010/037064
`
`PCT/U82009/058671
`
`router API compliments the simple telephony instructions to enable complex telephony
`
`applications.
`
`[0008]
`
`Within this framework for processing a telephony session, a method and
`
`system is described for caching media of the telephony session. The method and system
`
`include a cache and a media layer that cooperatively works to minimize processing and
`
`create telephony compatible media files that are cacheable. This method and system
`
`further enhances the developer process by removing the complexities of telephone
`
`media formatting and creates an improved telephony application system.
`
`BRIEF DESCRIPTION OF THE FIGURES
`
`[0009]
`
`FIGURE 1 is a flowchart representation of a preferred method of the
`
`invention.
`
`[0010]
`
`FIGURES 2A, 2B, 3A and 3B are schematic representations of preferred
`
`embodiments of the invention.
`
`[0011]
`
`FIGURES 4A — 4C are examples of a HTTP GET request, a HTTP POST
`
`request, and a HTTP GET request, respectively.
`
`[0012]
`
`FIGURES 4D — 4F are examples of a HTTP requests.
`
`[0013]
`
`FIGURES 5A and 5B are examples of XML responses.
`
`[0014]
`
`FIGURE 6 is an example of a call Router request and response.
`
`[0015]
`
`FIGURES 7—9 are schematic representations of various applications that
`
`incorporate the principals of the preferred method of the invention.
`
`TELESIGN EX1002
`
`Page 238
`TW_00011387
`
`TELESIGN EX1002
`Page 238
`
`
`
`WO 2010/037064
`
`PCT/U82009/058671
`
`[0016]
`
`FIGURE 10 is a flowchart representation of the sub—steps relating to the
`
`digital signature aspect of the preferred method of the invention.
`
`[0017]
`
`FIGURE 11 is a schematic diagram of the preferred embodiment of the
`
`invention.
`
`[0018]
`
`FIGURE 12 is a flowchart diagram of a preferred method.
`
`[0019]
`
`FIGURE 13 is a flowchart diagram of a first preferred variation of the
`
`preferred method, including a Text—To—Speech audio conversion.
`
`[0020]
`
`FIGURE 14 is a flowchart diagram of a second preferred variation
`
`including audio transcoding.
`
`[0021]
`
`FIGURE 15 is a schematic diagram of the preferred embodiment
`
`interfacing with a professional recording server.
`
`DESCRIPTION OF THE PREFERRED EMBODIMENTS
`
`[0022]
`
`The following description of the preferred embodiments of the invention is
`
`not intended to limit the invention to these preferred embodiments, but rather to enable
`
`any person skilled in the art to make and use this invention.
`
`1.
`
`Method for Processing Telephony Sessions
`
`[0023]
`
`As shown in FIGURES 1, 2A, 2B, 3A, and 3B, the method 10 of the
`
`preferred embodiment
`
`for processing telephony sessions
`
`include the steps of
`
`communicating with an application server using an application layer protocol SllO,
`
`processing telephony instructions with a call router $120, and creating call router
`
`TELESIGN EX1002
`
`Page 239
`TW_00011388
`
`TELESIGN EX1002
`Page 239
`
`
`
`WO 2010/037064
`
`PCT/U82009/058671
`
`resources accessible through an Application Programming Interface (API) S130. The
`
`preferred method may also include other steps and/or sub—steps, as explained below.
`
`
`1A.
`Communicating with an Application Server
`
`[0024]
`
`As shown in FIGURE 1, the step of communicating with an application
`
`server using an application layer protocol 8110 preferably includes the following sub—
`
`steps: initiating a telephony session 81, mapping a call to a Universal Resource Identifier
`
`(URI) 83, sending a request to a server associated with the URI S5, processing the
`
`request corresponding to the state of a telephony session S7, and receiving a response
`
`from the server S9. One of the challenges of using the familiar web site visitor model is
`
`that a third party web application may expose URIs that contain sensitive data or that
`
`suggest actions that could maliciously manipulate the application database. In the
`
`preferred embodiment, the call router cryptographically signs outbound requests to
`
`customer web applications using an account-specific key. More specifically, the step of
`
`communicating with the application server includes the additional steps of digitally
`
`signing the request parameters S4 and verifying the digital signature of the request
`
`parameters S6. Only the call router and the application server know that key, so any
`
`request that includes parameters (URL, POST data, headers, etc) signed with that key
`
`can be checked for authenticity before allowing such operations. This method also
`
`provides verification of authenticity over insecure links (H'ITP) with low CPU overhead.
`
`[0025]
`
`Step 31, which recites initiating a telephony session, functions to accept an
`
`incoming message. The message is preferably a call from a PSTN—connected (Public
`
`TELESIGN EX1002
`
`Page 240
`TW_00011389
`
`TELESIGN EX1002
`Page 240
`
`
`
`WO 2010/037064
`
`PCT/U82009/058671
`
`Switched Telephone Network) or Internet addressable devices, such as landline phones,
`
`cellular phones, satellite phones, Voice—Over—Internet—Protocol (VOIP) phones, SIP
`
`devices, Skype, Gtalk, or any other suitable PSTN—connected or Internet addressable
`
`voice device. The message may alternatively be a Short Message Service (SMS) message.
`
`A SMS gateway server may alternatively connect to a SMS network through a Short
`
`Message Service Center (“SMS—C”), directly to the Signaling System #7 (SS7) telephony
`
`network, or by any other suitable SMS gateway provider, and the message is preferably
`
`received from the gateway by the call router and translated into a format (such as a URI)
`
`that can be sent over the public Internet such as HTI‘P, based on the recipient address of
`
`the SMS, such as a short code, or Direct Inward Dialing (DID), or other suitable unique
`
`recipient identifier. The message may alternatively be a multimedia message, a facsimile
`
`transmission, an email, or any other suitable messaging medium. The originating phone
`
`number of the PSTN device is preferably captured using caller ID, but any other suitable
`
`ID may be captured, such as a VOIP provider ID, SMS device number, email address, or
`
`a short code. The dialed phone number, the EIN, and/or billing identifier, and/ or the
`
`date and time of the call are also preferably included in the session information. An
`
`authentication ID may additionally or alternatively be included in the session
`
`information.
`
`[0026]
`
`In one variation, Step Sl also functions to initiate a telephony session
`
`(such as a phone call) via an HTTP or other request sent to a call router from an
`
`application running on a third—party server. In this variation, the application running on
`
`the server preferably specifies an initial URI for the call router to use for telephony
`
`TELESIGN EX1002
`
`Page 241
`TW_00011390
`
`TELESIGN EX1002
`Page 241
`
`
`
`WO 2010/037064
`
`PCT/U82009/058671
`
`session in step 83, as well as the phone number (or other addressable destination) to
`
`dial and the source phone number (caller id). In this variation, the call router API is
`
`preferably used by the application server to request an outgoing call from the call router.
`
`[0027]
`
`Step S3, which recites mapping the call to a Universal Resource Identifier
`
`(URI), functions to enable a telephony session to be converted into a format that may be
`
`handled with standard web servers and web applications. The mapping is preferably
`
`performed using a call router. The initial URI is preferably pre—specified at the call
`
`router by a web application (which may be running on a third party server) or call router
`
`account owner. More preferably, the initial URI is assigned to the call via a unique
`
`identifier for the call destination, such as a DID (Direct Inbound Dial) phone number, or
`
`a VOIP SIP address. The URI may alternatively be specified by a remote server or other
`
`suitable device or method. In one variation, the URI may be used to encapsulate state
`
`information or a portion of state information from the initiated telephony session, such
`
`as the originating phone number, the dialed phone number, the date and time of the
`
`call, geographic location of the caller (e.g. country, city, state, and/or zip), and/or the
`
`unique call ID. The information included in the URI may be included in the form of a
`
`URI
`
`template.
`
`For
`
`example
`
`the
`
`URI
`
`default
`
`template
`
`could
`
`be:
`
`http: //demo.twilio.com/myapp/{dialed phone number}/{originating phone number} or
`
`http: //demo.twilio.com/myapp/foo.php?dialed_number={dialed
`
`phone
`
`number}&
`
`originatinginumber={originating phone number}.
`
`[0028]
`
`Step S4 functions to digitally sign the request parameters. As shown in
`
`FIGURE 10, Step S4 preferably determines the call router account owner and, more
`
`TELESIGN EX1002
`
`Page 242
`TW_00011391
`
`TELESIGN EX1002
`Page 242
`
`
`
`WO 2010/037064
`
`PCT/U82009/058671
`
`preferably, looks up the account owner’s unique ID or secret key and signs a set of
`
`request parameters. Step S4 is preferably accomplished by generating a cryptographic
`
`hash of the request parameters, preferably including the URI as well as any request body
`
`parameters (in the case of an HTTP POST, for example) with the unique key associated
`
`with the call router account owner. The cryptographic hash is preferably generated by
`
`appending the hash of the request parameters to the original set of request parameters.
`
`The hash is preferably appended to a URL, but if the hash is particularly long (i.e. for a
`
`very large number of parameters) the hash may be included in an HTTP header, where
`
`there is no limitation on size. In a variation of Step S4, at least one sensitive parameter
`
`may be individually encrypted using the account owner’s secret key before the hash is
`
`processed. In another variation, a cryptographic credential delegation system, such as
`
`Oauth (oauth.net), may alternatively be used to electronically sign the request.
`
`[0029]
`
`Step S5 functions to send the request to a server. Preferably, the request is
`
`sent to a URI and, more preferably, the request is sent to the URI mapped in $3. The
`
`request preferably includes a cryptographic hash computed from the set of request
`
`parameters (acting as a digital signature), but the request may alternatively include
`
`individually encrypted request parameters if the parameters are determined to contain
`
`sensitive data. The server is preferably a third party server and, more preferably, the
`
`server is running a web application. The request is preferably sent to a server over a
`
`network. In one variation, the request is sent to a local server on a local area network. In
`
`another variation,
`
`the request
`
`is sent to a server running locally on the device
`
`originating the call. In yet another variation, the request may be sent to multiple servers.
`
`10
`
`TELESIGN EX1002
`
`Page 243
`TW_00011392
`
`TELESIGN EX1002
`Page 243
`
`
`
`WO 2010/037064
`
`PCT/U82009/058671
`
`The request preferably encapsulates at least a portion of the state information from the
`
`initiated telephony session, such as the originating phone number, the dialed phone
`
`number, the date and time of the call, geographic location of the caller (e.g. country, city,
`
`and/or state, zip), and/or the unique call ID. The request, more preferably, encapsulates
`
`all the state information of the call, but may alternatively include no state information or
`
`partial state information. The state information from the initiated telephony session is
`
`preferably sent via HTTP POST in the request body, H'I'I‘P GET in the request URI,
`
`HTTP header parameters to mimic the data flow of a web browser, or by any
`
`combination or suitable alternative way. If new state information is generated in the
`
`course of the operation of the call router, a request to the application server is preferably
`
`made to communicate the new state and to request new telephony instructions.
`
`Preferably, new state information is not kept or acted upon internally by the call router,
`
`but is passed to the application server for processing. Alternatively, partial state
`
`information is preferably stored on the call router until a fully updated state is achieved,
`
`and then communicated to the application server. For example, the application server
`
`may specify that multiple digits should be pressed on the keypad, not just one, before
`
`new call state is derived and communicated to the application server. In one variation,
`
`the information from the initiated telephone session may be a web—form submission
`
`included in the HTTP POST request. The request may include any state information
`
`from the telephony session, such as the originating phone number, the dialed phone
`
`number, the date and time of the call, and/or the unique call ID, the current status of
`
`the phone call (pending,
`
`in—progress, completed, etc.), or the results of a telephony
`
`11
`
`TELESIGN EX1002
`
`Page 244
`TW_00011393
`
`TELESIGN EX1002
`Page 244
`
`
`
`WO 2010/037064
`
`PCT/U82009/058671
`
`action,
`
`including Dual Tone Multi Frequency (DTMF) digit processing, or
`
`a
`
`representation of or a link to a sound recording, or the status of the last command, or
`
`other call state. Examples of a HTTP GET request, a HTTP POST request, and a HTTP
`
`GET request are shown in FIGURES 4A, 4B, and 40, respectively. Further examples of
`
`HTTP communication used for SMS messaging are shown in FIGURES 4D, 4E, and 4F.
`
`The HTTP request (or any suitable request communication) to the server