{"id":"dc1d038a-651c-485d-aeeb-93299de31ce8","shortId":"YyXP6Q","kind":"skill","title":"telnyx-webrtc-java","tagline":">-","description":"<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->\n\n# Telnyx Webrtc - Java\n\n## Installation\n\n```text\n<!-- Maven -->\n<dependency>\n    <groupId>com.telnyx.sdk</groupId>\n    <artifactId>telnyx</artifactId>\n    <version>6.36.0</version>\n</dependency>\n\n// Gradle\nimplementation(\"com.telnyx.sdk:telnyx:6.36.0\")\n```\n\n## Setup\n\n```java\nimport com.telnyx.sdk.client.TelnyxClient;\nimport com.telnyx.sdk.client.okhttp.TelnyxOkHttpClient;\n\nTelnyxClient client = TelnyxOkHttpClient.fromEnv();\n```\n\nAll examples below assume `client` is already initialized as shown above.\n\n## Error Handling\n\nAll API calls can fail with network errors, rate limits (429), validation errors (422),\nor authentication errors (401). Always handle errors in production code:\n\n```java\nimport com.telnyx.sdk.errors.TelnyxServiceException;\n\ntry {\n    var result = client.messages().send(params);\n} catch (TelnyxServiceException e) {\n    System.err.println(\"API error \" + e.statusCode() + \": \" + e.getMessage());\n    if (e.statusCode() == 422) {\n        System.err.println(\"Validation error — check required fields and formats\");\n    } else if (e.statusCode() == 429) {\n        // Rate limited — wait and retry with exponential backoff\n        Thread.sleep(1000);\n    }\n}\n```\n\nCommon error codes: `401` invalid API key, `403` insufficient permissions,\n`404` resource not found, `422` validation error (check field formats),\n`429` rate limited (retry with exponential backoff).\n\n## Important Notes\n\n- **Pagination:** List methods return a page. Use `.autoPager()` for automatic iteration: `for (var item : page.autoPager()) { ... }`. For manual control, use `.hasNextPage()` and `.nextPage()`.\n\n## List mobile push credentials\n\n`GET /mobile_push_credentials`\n\n```java\nimport com.telnyx.sdk.models.mobilepushcredentials.MobilePushCredentialListPage;\nimport com.telnyx.sdk.models.mobilepushcredentials.MobilePushCredentialListParams;\n\nMobilePushCredentialListPage page = client.mobilePushCredentials().list();\n```\n\nReturns: `alias` (string), `certificate` (string), `created_at` (date-time), `id` (string), `private_key` (string), `project_account_json_file` (object), `record_type` (string), `type` (string), `updated_at` (date-time)\n\n## Creates a new mobile push credential\n\n`POST /mobile_push_credentials` — Required: `type`, `certificate`, `private_key`, `alias`\n\n```java\nimport com.telnyx.sdk.models.mobilepushcredentials.MobilePushCredentialCreateParams;\nimport com.telnyx.sdk.models.mobilepushcredentials.PushCredentialResponse;\n\nMobilePushCredentialCreateParams.CreateMobilePushCredentialRequest.Ios params = MobilePushCredentialCreateParams.CreateMobilePushCredentialRequest.Ios.builder()\n    .alias(\"LucyIosCredential\")\n    .certificate(\"-----BEGIN CERTIFICATE----- MIIGVDCCBTKCAQEAsNlRJVZn9ZvXcECQm65czs... -----END CERTIFICATE-----\")\n    .privateKey(\"-----BEGIN RSA PRIVATE KEY----- MIIEpQIBAAKCAQEAsNlRJVZn9ZvXcECQm65czs... -----END RSA PRIVATE KEY-----\")\n    .build();\nPushCredentialResponse pushCredentialResponse = client.mobilePushCredentials().create(params);\n```\n\nReturns: `alias` (string), `certificate` (string), `created_at` (date-time), `id` (string), `private_key` (string), `project_account_json_file` (object), `record_type` (string), `type` (string), `updated_at` (date-time)\n\n## Retrieves a mobile push credential\n\nRetrieves mobile push credential based on the given `push_credential_id`\n\n`GET /mobile_push_credentials/{push_credential_id}`\n\n```java\nimport com.telnyx.sdk.models.mobilepushcredentials.MobilePushCredentialRetrieveParams;\nimport com.telnyx.sdk.models.mobilepushcredentials.PushCredentialResponse;\n\nPushCredentialResponse pushCredentialResponse = client.mobilePushCredentials().retrieve(\"0ccc7b76-4df3-4bca-a05a-3da1ecc389f0\");\n```\n\nReturns: `alias` (string), `certificate` (string), `created_at` (date-time), `id` (string), `private_key` (string), `project_account_json_file` (object), `record_type` (string), `type` (string), `updated_at` (date-time)\n\n## Deletes a mobile push credential\n\nDeletes a mobile push credential based on the given `push_credential_id`\n\n`DELETE /mobile_push_credentials/{push_credential_id}`\n\n```java\nimport com.telnyx.sdk.models.mobilepushcredentials.MobilePushCredentialDeleteParams;\n\nclient.mobilePushCredentials().delete(\"0ccc7b76-4df3-4bca-a05a-3da1ecc389f0\");\n```\n\n## List all credentials\n\nList all On-demand Credentials.\n\n`GET /telephony_credentials`\n\n```java\nimport com.telnyx.sdk.models.telephonycredentials.TelephonyCredentialListPage;\nimport com.telnyx.sdk.models.telephonycredentials.TelephonyCredentialListParams;\n\nTelephonyCredentialListPage page = client.telephonyCredentials().list();\n```\n\nReturns: `created_at` (string), `expired` (boolean), `expires_at` (string), `id` (string), `name` (string), `record_type` (string), `resource_id` (string), `sip_password` (string), `sip_username` (string), `updated_at` (string), `user_id` (string)\n\n## Create a credential\n\nCreate a credential.\n\n`POST /telephony_credentials` — Required: `connection_id`\n\nOptional: `expires_at` (string), `name` (string), `tag` (string)\n\n```java\nimport com.telnyx.sdk.models.telephonycredentials.TelephonyCredentialCreateParams;\nimport com.telnyx.sdk.models.telephonycredentials.TelephonyCredentialCreateResponse;\n\nTelephonyCredentialCreateParams params = TelephonyCredentialCreateParams.builder()\n    .connectionId(\"1234567890\")\n    .build();\nTelephonyCredentialCreateResponse telephonyCredential = client.telephonyCredentials().create(params);\n```\n\nReturns: `created_at` (string), `expired` (boolean), `expires_at` (string), `id` (string), `name` (string), `record_type` (string), `resource_id` (string), `sip_password` (string), `sip_username` (string), `updated_at` (string), `user_id` (string)\n\n## Get a credential\n\nGet the details of an existing On-demand Credential.\n\n`GET /telephony_credentials/{id}`\n\n```java\nimport com.telnyx.sdk.models.telephonycredentials.TelephonyCredentialRetrieveParams;\nimport com.telnyx.sdk.models.telephonycredentials.TelephonyCredentialRetrieveResponse;\n\nTelephonyCredentialRetrieveResponse telephonyCredential = client.telephonyCredentials().retrieve(\"550e8400-e29b-41d4-a716-446655440000\");\n```\n\nReturns: `created_at` (string), `expired` (boolean), `expires_at` (string), `id` (string), `name` (string), `record_type` (string), `resource_id` (string), `sip_password` (string), `sip_username` (string), `updated_at` (string), `user_id` (string)\n\n## Update a credential\n\nUpdate an existing credential.\n\n`PATCH /telephony_credentials/{id}`\n\nOptional: `connection_id` (string), `expires_at` (string), `name` (string), `tag` (string)\n\n```java\nimport com.telnyx.sdk.models.telephonycredentials.TelephonyCredentialUpdateParams;\nimport com.telnyx.sdk.models.telephonycredentials.TelephonyCredentialUpdateResponse;\n\nTelephonyCredentialUpdateResponse telephonyCredential = client.telephonyCredentials().update(\"550e8400-e29b-41d4-a716-446655440000\");\n```\n\nReturns: `created_at` (string), `expired` (boolean), `expires_at` (string), `id` (string), `name` (string), `record_type` (string), `resource_id` (string), `sip_password` (string), `sip_username` (string), `updated_at` (string), `user_id` (string)\n\n## Delete a credential\n\nDelete an existing credential.\n\n`DELETE /telephony_credentials/{id}`\n\n```java\nimport com.telnyx.sdk.models.telephonycredentials.TelephonyCredentialDeleteParams;\nimport com.telnyx.sdk.models.telephonycredentials.TelephonyCredentialDeleteResponse;\n\nTelephonyCredentialDeleteResponse telephonyCredential = client.telephonyCredentials().delete(\"550e8400-e29b-41d4-a716-446655440000\");\n```\n\nReturns: `created_at` (string), `expired` (boolean), `expires_at` (string), `id` (string), `name` (string), `record_type` (string), `resource_id` (string), `sip_password` (string), `sip_username` (string), `updated_at` (string), `user_id` (string)","tags":["telnyx","webrtc","java","team-telnyx","agent-skills","ai-coding-agent","claude-code","cpaas","cursor","iot","llm","sdk"],"capabilities":["skill","source-team-telnyx","skill-telnyx-webrtc-java","topic-agent-skills","topic-ai-coding-agent","topic-claude-code","topic-cpaas","topic-cursor","topic-iot","topic-llm","topic-sdk","topic-sip","topic-sms","topic-speech-to-text","topic-telephony"],"categories":["ai"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/team-telnyx/ai/telnyx-webrtc-java","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add team-telnyx/ai","source_repo":"https://github.com/team-telnyx/ai","install_from":"skills.sh"}},"qualityScore":"0.533","qualityRationale":"deterministic score 0.53 from registry signals: · indexed on github topic:agent-skills · 167 github stars · SKILL.md body (7,819 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T00:54:56.008Z","embedding":null,"createdAt":"2026-04-18T22:08:47.952Z","updatedAt":"2026-04-22T00:54:56.008Z","lastSeenAt":"2026-04-22T00:54:56.008Z","tsv":"'/mobile_push_credentials':162,209,295,362 '/telephony_credentials':387,435,508,564,631 '0ccc7b76':309,372 '0ccc7b76-4df3-4bca-a05a-3da1ecc389f0':308,371 '1000':105 '1234567890':456 '3da1ecc389f0':313,376 '401':57,109 '403':113 '404':116 '41d4':522,589,645 '422':53,83,120 '429':50,95,126 '446655440000':524,591,647 '4bca':311,374 '4df3':310,373 '550e8400':519,586,642 '6.36.0':12,17 'a05a':312,375 'a716':523,590,646 'account':188,264,330 'alia':173,215,224,249,315 'alreadi':33 'alway':58 'api':41,77,111 'assum':30 'authent':55 'automat':144 'autopag':142 'backoff':103,132 'base':287,354 'begin':227,233 'boolean':402,468,530,597,653 'build':242,457 'call':42 'catch':73 'certif':175,212,226,228,231,251,317 'check':87,123 'client':25,31 'client.messages':70 'client.mobilepushcredentials':170,245,306,369 'client.telephonycredentials':395,460,517,584,640 'code':63,108 'com.telnyx.sdk':10,15 'com.telnyx.sdk.client.okhttp.telnyxokhttpclient':23 'com.telnyx.sdk.client.telnyxclient':21 'com.telnyx.sdk.errors.telnyxserviceexception':66 'com.telnyx.sdk.models.mobilepushcredentials.mobilepushcredentialcreateparams':218 'com.telnyx.sdk.models.mobilepushcredentials.mobilepushcredentialdeleteparams':368 'com.telnyx.sdk.models.mobilepushcredentials.mobilepushcredentiallistpage':165 'com.telnyx.sdk.models.mobilepushcredentials.mobilepushcredentiallistparams':167 'com.telnyx.sdk.models.mobilepushcredentials.mobilepushcredentialretrieveparams':301 'com.telnyx.sdk.models.mobilepushcredentials.pushcredentialresponse':220,303 'com.telnyx.sdk.models.telephonycredentials.telephonycredentialcreateparams':449 'com.telnyx.sdk.models.telephonycredentials.telephonycredentialcreateresponse':451 'com.telnyx.sdk.models.telephonycredentials.telephonycredentialdeleteparams':635 'com.telnyx.sdk.models.telephonycredentials.telephonycredentialdeleteresponse':637 'com.telnyx.sdk.models.telephonycredentials.telephonycredentiallistpage':390 'com.telnyx.sdk.models.telephonycredentials.telephonycredentiallistparams':392 'com.telnyx.sdk.models.telephonycredentials.telephonycredentialretrieveparams':512 'com.telnyx.sdk.models.telephonycredentials.telephonycredentialretrieveresponse':514 'com.telnyx.sdk.models.telephonycredentials.telephonycredentialupdateparams':579 'com.telnyx.sdk.models.telephonycredentials.telephonycredentialupdateresponse':581 'common':106 'connect':437,567 'connectionid':455 'control':152 'creat':177,202,246,253,319,398,428,431,461,464,526,593,649 'credenti':160,207,282,286,292,297,348,353,359,364,379,385,430,433,496,506,558,562,625,629 'date':180,200,256,276,322,342 'date-tim':179,199,255,275,321,341 'delet':344,349,361,370,623,626,630,641 'demand':384,505 'detail':499 'e':75 'e.getmessage':80 'e.statuscode':79,82,94 'e29b':521,588,644 'e29b-41d4-a716':520,587,643 'els':92 'end':230,238 'error':38,47,52,56,60,78,86,107,122 'exampl':28 'exist':502,561,628 'expir':401,403,440,467,469,529,531,570,596,598,652,654 'exponenti':102,131 'fail':44 'field':89,124 'file':190,266,332 'format':91,125 'found':119 'get':161,294,386,494,497,507 'given':290,357 'gradl':13 'handl':39,59 'hasnextpag':154 'id':182,258,293,298,324,360,365,406,414,426,438,472,480,492,509,534,542,554,565,568,601,609,621,632,657,665,677 'implement':14 'import':20,22,65,133,164,166,217,219,300,302,367,389,391,448,450,511,513,578,580,634,636 'initi':34 'instal':8 'insuffici':114 'invalid':110 'item':148 'iter':145 'java':4,7,19,64,163,216,299,366,388,447,510,577,633 'json':189,265,331 'key':112,185,214,236,241,261,327 'limit':49,97,128 'list':136,157,171,377,380,396 'lucyioscredenti':225 'manual':151 'method':137 'miiepqibaakcaqeasnlrjvzn9zvxcecqm65czs':237 'miigvdccbtkcaqeasnlrjvzn9zvxcecqm65czs':229 'mobil':158,205,280,284,346,351 'mobilepushcredentialcreateparams.createmobilepushcredentialrequest.ios':221 'mobilepushcredentialcreateparams.createmobilepushcredentialrequest.ios.builder':223 'mobilepushcredentiallistpag':168 'name':408,443,474,536,573,603,659 'network':46 'new':204 'nextpag':156 'note':134 'object':191,267,333 'on-demand':382,503 'option':439,566 'page':140,169,394 'page.autopager':149 'pagin':135 'param':72,222,247,453,462 'password':417,483,545,612,668 'patch':563 'permiss':115 'post':208,434 'privat':184,213,235,240,260,326 'privatekey':232 'product':62 'project':187,263,329 'push':159,206,281,285,291,296,347,352,358,363 'pushcredentialrespons':243,244,304,305 'rate':48,96,127 'record':192,268,334,410,476,538,605,661 'requir':88,210,436 'resourc':117,413,479,541,608,664 'result':69 'retri':100,129 'retriev':278,283,307,518 'return':138,172,248,314,397,463,525,592,648 'rsa':234,239 'send':71 'setup':18 'shown':36 'sip':416,419,482,485,544,547,611,614,667,670 'skill' 'skill-telnyx-webrtc-java' 'source-team-telnyx' 'string':174,176,183,186,194,196,250,252,259,262,270,272,316,318,325,328,336,338,400,405,407,409,412,415,418,421,424,427,442,444,446,466,471,473,475,478,481,484,487,490,493,528,533,535,537,540,543,546,549,552,555,569,572,574,576,595,600,602,604,607,610,613,616,619,622,651,656,658,660,663,666,669,672,675,678 'system.err.println':76,84 'tag':445,575 'telephonycredenti':459,516,583,639 'telephonycredentialcreateparam':452 'telephonycredentialcreateparams.builder':454 'telephonycredentialcreaterespons':458 'telephonycredentialdeleterespons':638 'telephonycredentiallistpag':393 'telephonycredentialretrieverespons':515 'telephonycredentialupdaterespons':582 'telnyx':2,5,11,16 'telnyx-webrtc-java':1 'telnyxcli':24 'telnyxokhttpclient.fromenv':26 'telnyxserviceexcept':74 'text':9 'thread.sleep':104 'time':181,201,257,277,323,343 'topic-agent-skills' 'topic-ai-coding-agent' 'topic-claude-code' 'topic-cpaas' 'topic-cursor' 'topic-iot' 'topic-llm' 'topic-sdk' 'topic-sip' 'topic-sms' 'topic-speech-to-text' 'topic-telephony' 'tri':67 'type':193,195,211,269,271,335,337,411,477,539,606,662 'updat':197,273,339,422,488,550,556,559,585,617,673 'use':141,153 'user':425,491,553,620,676 'usernam':420,486,548,615,671 'valid':51,85,121 'var':68,147 'wait':98 'webrtc':3,6","prices":[{"id":"2171cfff-99da-4c06-838f-fda61dd9bb1e","listingId":"dc1d038a-651c-485d-aeeb-93299de31ce8","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"team-telnyx","category":"ai","install_from":"skills.sh"},"createdAt":"2026-04-18T22:08:47.952Z"}],"sources":[{"listingId":"dc1d038a-651c-485d-aeeb-93299de31ce8","source":"github","sourceId":"team-telnyx/ai/telnyx-webrtc-java","sourceUrl":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-webrtc-java","isPrimary":false,"firstSeenAt":"2026-04-18T22:08:47.952Z","lastSeenAt":"2026-04-22T00:54:56.008Z"}],"details":{"listingId":"dc1d038a-651c-485d-aeeb-93299de31ce8","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"team-telnyx","slug":"telnyx-webrtc-java","github":{"repo":"team-telnyx/ai","stars":167,"topics":["agent-skills","ai","ai-coding-agent","claude-code","cpaas","cursor","iot","llm","sdk","sip","sms","speech-to-text","telephony","telnyx","tts","twilio-migration","voice-agents","voice-ai","webrtc","windsurf"],"license":"mit","html_url":"https://github.com/team-telnyx/ai","pushed_at":"2026-04-21T22:09:49Z","description":"Official one-stop shop for AI Agents and developers building with Telnyx.","skill_md_sha":"f437ce167860fd7e3ee6e5bfe8b0bad0dba76d4c","skill_md_path":"skills/telnyx-webrtc-java/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-webrtc-java"},"layout":"multi","source":"github","category":"ai","frontmatter":{"name":"telnyx-webrtc-java","description":">-"},"skills_sh_url":"https://skills.sh/team-telnyx/ai/telnyx-webrtc-java"},"updatedAt":"2026-04-22T00:54:56.008Z"}}