> For the complete documentation index, see [llms.txt](https://prosbcdocs.telcobridges.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://prosbcdocs.telcobridges.com/telecom-references/developer-reference/restful-api/configuration-h248.md).

# Configuration:H248

## H.248 Configuration

The simplest approach to configuring H.248 is to *POST* only attributes for which we want non-default values. The structure of the H.248 JSON object can be queried by getting the default values, explained later on on this page.

### Element Addition (POST)

#### h248\_stack

This example uses default values mostly. Some attributes are given specific values, depending on the needs. There is also required attributes, for which no defaults exist. Here and **transport\_protocol.ip\_interface** and **transport\_protocol.public\_ip\_address** are by default empty, and must be set otherwise the *POST* will be refused. The attribute *naps* is also required to complete the overall configuration, but can be omitted during the creation *POST*, and added at a later time. POST /configurations/{CfgName}/h248\_stacks { -> Content: { "***meta***" : { "version" : "2.9.10" }, "advanced\_parameters" : { "serialize\_null\_context\_commands" : true }, "enabled" : true, "naps" : \[ "NAP\_TDM", "RTP\_NAP" ], "timers" : { "local\_response\_timer" : "4 seconds" }, "transport\_protocol" : { "ip\_interface" : "TB0999999.SIG", "public\_ip\_address" : "10.1.0.254", "use\_ip\_interface" : true } } Here *{CfgName}* should be replaced by the name of your configuration. TB0999999.SIG is the IP interface name to use for the H.248 signalling trafic. This name must be globally unique, and therefore the **Unit** serial number must be prepended to the **IP interface name** in order to form a globally unique name. ip\_interface = Unit.IpInterfaceName

For example, here the **ip\_interface** name is **TB0999999.SIG**

![IpInterfaceName](https://docs.telcobridges.com/w/images/4/48/IpInterfaceName.png)

#### h248\_media\_gateway\_controllers

After having added the h.248 stack, h248\_media\_gateway\_controller can be added. POST /configurations/{CfgName}/h248\_stacks/gateway\_h248/h248\_media\_gateway\_controllers -> Content: { "***meta***" : { "version" : "2.9.10" }, "name" : "MyMGC", "ip\_address" : "10.1.0.252", "port\_to\_send\_for\_text\_encoding" : 2944, "position" : 1 }

#### h248\_tdm\_terminations

New element can't be added into h248\_tdm\_terminations collection, they are automatically added when linking **NAPs** to **h248\_gateway**. E1/T1 trunks owned by linked **NAPs** will be populated in the *h248\_tdm\_terminations* collection.

After having configured the *naps* parameter of *gateway\_h248* h248\_stack element, the h248\_tdm\_terminations collection get be retrieved to be configured.

By default, elements on the collection will structured as the following: "{ElementName}" : { "line\_service" : "{TrunkName}", "suffix\_start\_number" : 0, "term\_name\_prefix" : "TRK\_{TrunkName}/", "timeslot\_mask" : 0, "type" : "TDM", "use\_timeslot\_number" : true }

The **{ElementName}** corresponds to the **"term\_name\_prefix"** without the trailing '/'. Changing **term\_name\_prefix** will result in changing the **{ElementName}** in the collection.

The default **"term\_name\_prefix"** is built by prepending 'TRK\_' to the associated **"line\_service"** trunk name.

So, if the line service 0 name would be LS\_0, we would get the following: "TRK\_LS\_0" : { "line\_service" : "LS\_0", "suffix\_start\_number" : 0, "term\_name\_prefix" : "TRK\_LS\_0/", "timeslot\_mask" : 0, "type" : "TDM", "use\_timeslot\_number" : true }

### Getting the default values

To add a H.248 to a new configuration, it might be helpful to get the default values first. This can be done with a *GET* with using **new** as element name under the **h248\_stacks** collection. The attribute values from the returned JSON object can then be modified before submitting the new element using the *POST* method.

#### h248\_stack

```
GET /configurations/{CfgName}/h248_stacks/new
<- Content: {
"***meta***" : {
"version" : "2.9.10"
},
"advanced_parameters" : {
"allow_wildcard_in_service_change" : true,
"behavior" : {
"compact_h248_descriptor_headers" : false,
"loose_h248_message_decoding" : false,
"no_only_ephemeral" : false,
"no_remote_response" : false,
"no_sctp_send_acknowledge" : false,
"no_warm_service_change" : false,
"null_terminating_h248_message" : false,
"relay_unknown_h248_parameters" : false,
"send_transaction_pending_automatically" : false,
"send_transaction_response_acks" : false,
"send_transaction_response_acks_immediately" : true,
"transparent_sdp" : true
},
"default_megaco_version" : 2,
"ephemeral_termination_identifier_maximum_value" : 4294967295,
"ephemeral_termination_identifier_root" : "IP/",
"maximum_number_of_dns_pending_requests" : 5,
"maximum_number_of_ephemeral_terminations" : 2048,
"maximum_number_of_retransmissions" : 11,
"maximum_number_of_tdm_terminations" : 2048,
"profile" : {
"profile_enabled" : false,
"profile_name" : "",
"profile_version" : ""
},
"serialize_null_context_commands" : false,
"switch_to_passthrough_on_tdm_ec_off" : true
},
"enabled" : true,
"naps" : [
],
"timers" : {
"default_sent_transaction_timer" : "500 milliseconds",
"dialing_duration_timer" : "5 seconds",
"dialing_long_timer" : "15 seconds",
"dialing_short_timer" : "5 seconds",
"dialing_start_timer" : "30 seconds",
"inactivity_timer" : "30 seconds",
"local_response_timer" : "10 seconds",
"maximum_sent_transaction_timer" : "4 seconds",
"provisional_reply_transaction_timer" : "6 seconds",
"restart_timer_value_to_retry_controller_association" : "30 seconds",
"saved_replied_transaction_timer" : "30 seconds"
},
"transport_protocol" : {
"ip_interface" : "",
"ip_tos_value" : 0,
"local_ip_address" : "",
"local_port_to_receive_for_text_encoding" : 2944,
"public_ip_address" : "",
"sctp_parameters" : {
"checksum_type" : "AUTODETECT",
"maximum_number_of_association_per_instance" : 5,
"maximum_number_of_init_cookie_echo_chunk_retransmission" : 8,
"maximum_number_of_input_sctp_streams" : 32,
"maximum_number_of_instance_sapi" : 2,
"maximum_number_of_ip_address_per_instance" : 2,
"maximum_number_of_output_sctp_streams" : 5,
"maximum_number_of_packets_sent_when_transmitting_new_data_chunks" : 4,
"maximum_number_of_retransmission_per_association" : 10,
"maximum_number_of_retransmission_per_path" : 5,
"maximum_number_of_sctp_responses_waiting_for_acknowledge" : 5,
"maximum_number_of_streams_per_association" : 4,
"number_of_network_interface_card" : 2
},
"transport_protocol_type" : "UDP",
"use_ip_interface" : false
},
"h248_media_gateway_controllers" : {
},
"h248_tdm_terminations" : {
}
}
```

#### h248\_media\_gateway\_controllers

```
GET /configurations/{CfgName}/h248_stacks/gateway_h248/h248_media_gateway_controllers/new
<- Content: {
"***meta***" : {
"version" : "2.9.10"
},
"ip_address" : "",
"name" : "",
"port_to_send_for_text_encoding" : 2944,
"position" : 0
}
```

#### h248\_tdm\_terminations

New element can't be added into h248\_tdm\_terminations collection on */configurations/{CfgName}/h248\_stacks/gateway\_h248/h248\_tdm\_terminations* URI, therefore getting default parameters using */new* is not possible. Elements in *h248\_tdm\_terminations* collection are automatically added when linking **NAPs** to **h248\_gateway**. E1/T1 trunks owned by linked **NAPs** will be populated in the *h248\_tdm\_terminations* collection.

Anyhow, the h248\_tdm\_termination element structure is the following: "{ElementName}" : { "line\_service" : "{TrunkName}", "suffix\_start\_number" : 0, "term\_name\_prefix" : "TRK\_{TrunkName}/", "timeslot\_mask" : 0, "type" : "TDM", "use\_timeslot\_number" : true }

The **{ElementName}** corresponds to the **"term\_name\_prefix"** without the trailing '/'. Changing **term\_name\_prefix** will result in changing the **{ElementName}** in the collection.

The default **"term\_name\_prefix"** is built by prepending 'TRK\_' suffix to the associated **"line\_service"** trunk name.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://prosbcdocs.telcobridges.com/telecom-references/developer-reference/restful-api/configuration-h248.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
