Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
DIDLOGIC_API_KEYYes

Tools

Functions exposed to the LLM to take actions

NameDescription
get_balance

Get the current DIDLogic account balance

Returns a JSON object with balance in USD Example output: {"balance": 35.22}

list_sip_accounts

List all SIP accounts

Returns a JSON object with all SIP accounts where: id: ID of SIP account name: SIP account name (login) callerid: CallerID associated with this SIP account label: label fot this SIP account charge: charge for calls on this month talk_time: total talk time for this month rewrite_enabled: do SIP account have calling number rewriting rule rewrite_cond: prefix to be rewrited (ex: 00) rewrite_prefix: prefix to what should be rewritten (ex: 44) didinfo_enabled: do DIDLogic will attempt send DID number as TO when receiving calls to this account ip_restrict: do we need to allowlist IP addresses for this account allowed_ips: IP addresses allowed for this SIP account call_restrict: flag indicates what SIP account should have maximum call time call_limit: maximum call duration in seconds channels_restrict: flag indicates what SIP account should have maximum channels limit max_channels: maximum sip channels cost_limit: flag indicates what SIP account should have maximum call cost max_call_cost: maximum call cost for this SIP account created_at: date of creation this SIP account

Example:

{ "sipaccounts": [ { "id": 61, "name": "12345", "callerid": "17254999999", "label": "TEST DEVICE", "host": "dynamic", "charge": "0.0", "talk_time": 0, "rewrite_enabled": false, "rewrite_cond": "8", "rewrite_prefix": "7", "didinfo_enabled": false, "ip_restrict": false, "call_restrict": true, "call_limit": 2800, "channels_restrict": false, "max_channels": 1, "cost_limit": false, "max_call_cost": "5.0", "created_at": "2024-06-03 06:06:47 UTC", "allowed_ips": ["1.2.3.4", "3.4.5.6"] } ] }
get_sip_account

Get details about SIP account

Args: name: SIP account name

Returns a JSON object with SIP account details where: id: ID of SIP account name: SIP account name (login) callerid: CallerID associated with this SIP account label: label fot this SIP account charge: charge for calls on this month talk_time: total talk time for this month rewrite_enabled: do SIP account have calling number rewriting rule rewrite_cond: prefix to be rewrited (ex: 00) rewrite_prefix: prefix to what should be rewritten (ex: 44) didinfo_enabled: do DIDLogic will attempt send DID number as TO when receiving calls to this account ip_restrict: do we need to allowlist IP addresses for this account allowed_ips: IP addresses allowed for this SIP account call_restrict: flag indicates what SIP account should have maximum call time call_limit: maximum call duration in seconds channels_restrict: flag indicates what SIP account should have maximum channels limit max_channels: maximum sip channels cost_limit: flag indicates what SIP account should have maximum call cost max_call_cost: maximum call cost for this SIP account created_at: date of creation this SIP account

Example:

{ "sipaccount": { "id": 61, "name": "12345", "callerid": "17254999999", "label": "TEST DEVICE", "host": "dynamic", "charge": "0.0", "talk_time": 0, "rewrite_enabled": false, "rewrite_cond": "8", "rewrite_prefix": "7", "didinfo_enabled": false, "ip_restrict": false, "call_restrict": true, "call_limit": 2800, "channels_restrict": false, "max_channels": 1, "cost_limit": false, "max_call_cost": "5.0", "created_at": "2024-06-03 06:06:47 UTC", "allowed_ips": ["1.2.3.4", "3.4.5.6"] } }
create_sip_account

Creates a new SIP account

Args: password: Password to be used for this SIP account callerid: CallerID associated with this SIP account label: label fot this SIP account rewrite_enabled: do SIP account have calling number rewriting rule rewrite_cond: prefix to be rewrited (ex: 00) rewrite_prefix: prefix to what should be rewritten (ex: 44) didinfo_enabled: do DIDLogic will attempt send DID number as TO when receiving calls to this account ip_restrict: do we need to allowlist IP addresses for this account call_restrict: flag indicates what SIP account should have maximum call time call_limit: maximum call duration in seconds channels_restrict: flag indicates what SIP account should have maximum channels limit max_channels: maximum sip channels cost_limit: flag indicates what SIP account should have maximum call cost max_call_cost: maximum call cost for this SIP account

Returns a JSON object with SIP account details where: id: ID of SIP account name: SIP account name (login) callerid: CallerID associated with this SIP account label: label fot this SIP account charge: charge for calls on this month talk_time: total talk time for this month rewrite_enabled: do SIP account have calling number rewriting rule rewrite_cond: prefix to be rewrited (ex: 00) rewrite_prefix: prefix to what should be rewritten (ex: 44) didinfo_enabled: do DIDLogic will attempt send DID number as TO when receiving calls to this account ip_restrict: do we need to allowlist IP addresses for this account allowed_ips: IP addresses allowed for this SIP account call_restrict: flag indicates what SIP account should have maximum call time call_limit: maximum call duration in seconds channels_restrict: flag indicates what SIP account should have maximum channels limit max_channels: maximum sip channels cost_limit: flag indicates what SIP account should have maximum call cost max_call_cost: maximum call cost for this SIP account created_at: date of creation this SIP account

Example:

{ "sipaccount": { "id": 61, "name": "12345", "callerid": "17254999999", "label": "TEST DEVICE", "host": "dynamic", "charge": "0.0", "talk_time": 0, "rewrite_enabled": false, "rewrite_cond": "8", "rewrite_prefix": "7", "didinfo_enabled": false, "ip_restrict": false, "call_restrict": true, "call_limit": 2800, "channels_restrict": false, "max_channels": 1, "cost_limit": false, "max_call_cost": "5.0", "created_at": "2024-06-03 06:06:47 UTC", "allowed_ips": ["1.2.3.4", "3.4.5.6"] } }
update_sip_account

Creates a SIP account

Args: name: SIP account name password: Password to be used for this SIP account callerid: CallerID associated with this SIP account label: label fot this SIP account rewrite_enabled: do SIP account have calling number rewriting rule rewrite_cond: prefix to be rewrited (ex: 00) rewrite_prefix: prefix to what should be rewritten (ex: 44) didinfo_enabled: do DIDLogic will attempt send DID number as TO when receiving calls to this account ip_restrict: do we need to allowlist IP addresses for this account call_restrict: flag indicates what SIP account should have maximum call time call_limit: maximum call duration in seconds channels_restrict: flag indicates what SIP account should have maximum channels limit max_channels: maximum sip channels cost_limit: flag indicates what SIP account should have maximum call cost max_call_cost: maximum call cost for this SIP account

Returns a JSON object with SIP account details where: id: ID of SIP account name: SIP account name (login) callerid: CallerID associated with this SIP account label: label fot this SIP account charge: charge for calls on this month talk_time: total talk time for this month rewrite_enabled: do SIP account have calling number rewriting rule rewrite_cond: prefix to be rewrited (ex: 00) rewrite_prefix: prefix to what should be rewritten (ex: 44) didinfo_enabled: do DIDLogic will attempt send DID number as TO when receiving calls to this account ip_restrict: do we need to allowlist IP addresses for this account allowed_ips: IP addresses allowed for this SIP account call_restrict: flag indicates what SIP account should have maximum call time call_limit: maximum call duration in seconds channels_restrict: flag indicates what SIP account should have maximum channels limit max_channels: maximum sip channels cost_limit: flag indicates what SIP account should have maximum call cost max_call_cost: maximum call cost for this SIP account created_at: date of creation this SIP account

Example:

{ "sipaccount": { "id": 61, "name": "12345", "callerid": "17254999999", "label": "TEST DEVICE", "host": "dynamic", "charge": "0.0", "talk_time": 0, "rewrite_enabled": false, "rewrite_cond": "8", "rewrite_prefix": "7", "didinfo_enabled": false, "ip_restrict": false, "call_restrict": true, "call_limit": 2800, "channels_restrict": false, "max_channels": 1, "cost_limit": false, "max_call_cost": "5.0", "created_at": "2024-06-03 06:06:47 UTC", "allowed_ips": ["1.2.3.4", "3.4.5.6"] } }
delete_sip_account

Delete a SIP account

Args: name: SIP account name

Returns a SIP Account deleted message on success

get_allowed_ips

Get list of whitelisted IPs for a SIP account

Args: sipaccount_name: Name of SIP account

Returns a JSON object with array of whitelisted IP for SIP Account Example output: { "allowed_ips": [ "88.99.12.33" ] }

add_allowed_ip

Whitelist an IP to a SIP account

Args: sipaccount_name: Name of SIP account ip: IP address to allow

Returns a JSON object with all whitelisted IP addresses for account Example output: { "allowed_ips": [ "88.99.12.33", "99.33.55.11" ] }

delete_allowed_ip

Delete an whitelisted IP from a SIP account

Args: sipaccount_name: Name of SIP account ip: IP address to remove from whitelist

Returns "IP removed successfully" when IP removed from whitelisted

list_purchases

List purchased DIDs in DIDLogic

Args: page: page of result starting with 1 per_page: how many results should be on per page

Returns a JSON object with a call history results where: purchases: List of purchased DIDs number: Number of DID channels: How many parallel channels DID have country: Country name area: City name free_minutes: How many free minutes per month DID have activation: Activation cost for DID in USD monthly_fee: Monthly fee for DID per_minute: Per minute cost for DID codec: what SIP codec is preferred for this number check_state: DID state

pagination: Pagination details for results page: current page of results per_page: results per page total_pages: total pages results total_records: total query records (maximum 5000)

Example response:

{ "purchases": [ { "number": "441172999999", "channels": 2, "country": "United Kingdom", "area": "Bristol", "codec": "G711", "activation": 0.0, "monthly_fee": 0.99, "per_minute": 0.001, "check_state": "checked", "free_minutes": 0 } ], "pagination": { "pages": 1, "page": 1, "per_page": 100, "total_records": 50 } }
list_destinations

List DID destination.

Args: number: DID number in DIDLogic

Returns a JSON object with all did destinations where: id: ID of destination destination: destination priority: priority of selection callhunt: flag indicates do destination is part of ring all group active: flag indicates is destination enabled or not transport: transport of destination where: 1 = SIP address destination (ex: 123@example.com) 4 = PSTN (phone number) destination (ex: 15551231233) 5 = SIP account destination (ex: 12345)

Example:

{ "destination": [ { "id": 1234455, "destination": "12345", "priority": 1, "callhunt": false, "active": true, "transport": 5 } ] }
add_destination

Add a DID destination.

Args: number: DID number in DIDLogic callhunt: flag indicates do destination is part of ring all group active: flag indicates is destination enabled or not transport: transport of destination where: 1 = SIP address destination (ex: 123@example.com) 4 = PSTN (phone number) destination (ex: 15551231233) 5 = SIP account destination (ex: 12345) destination: destination

Returns a JSON object with did destination where: id: ID of destination destination: destination priority: priority of selection callhunt: flag indicates do destination is part of ring all group active: flag indicates is destination enabled or not transport: transport of destination where: 1 = SIP address destination (ex: 123@example.com) 4 = PSTN (phone number) destination (ex: 15551231233) 5 = SIP account destination (ex: 12345)

Example:

{ "did_destination": { "id": 1234455, "destination": "12345", "priority": 1, "callhunt": false, "active": true, "transport": 5 } }
delete_destination

Remove destination from DID.

Args: number: DID number in DIDLogic id: destination ID to remove

Returns a Destination deleted on success

list_countries

List available countries with DID for purchase on DIDLogic

Args: sms_enabled: search for DID with SMS functionality

Returns a JSON object with available countries for purchase. Returned countries list have following fields: id: ID of country name: Name of country in DIDLogic short_name: ISO code of country has_provinces_or_states: do country have provinces or states which can be queried by list_country_regions tool.

403 error indicates disabled API calls for purchase.

Example:

{ "countries": [ { "id": 8669, "name": "Argentina", "short_name": "AR", "has_provinces_or_states": false } ] }
list_country_regions

List country regions with available DIDs for purchase

Args: country_id: ID of country for search sms_enabled: search for DID with SMS functionality

Returns a JSON object with available regions for purchase. Returned countries list have following fields: id: ID of region name: Name of region in DIDLogic short_name: short code for region

403 error indicates disabled API calls for purchase.

Example:

{ "regions": [ { "id": 1, "name": "Alberta", "short_name": "AB" } }
list_country_cities

List of Cities with available DID for purchase in a country

Args: country_id: ID of country for search sms_enabled: search for DID with SMS functionality

Returns a JSON object with available cities for purchase DIDs. Returned cities list have following fields: id: ID of city name: Name of city in DIDLogic area_code: Area code within country count: count of available DIDs for purchasing

403 error indicates disabled API calls for purchase.

Example:

{ "cities": [ { "id": 118557, "name": "Ottawa-Hull, ON", "area_code": "613800", "count": 81 } ] }
list_country_cities_in_region

List of Cities with available DID in a region of a country

Args: country_id: ID of country for search region_id: ID of region in a country sms_enabled: search for DID with SMS functionality

Returns a JSON object with available cities for purchase DIDs. Returned cities list have following fields: id: ID of city name: Name of city in DIDLogic area_code: Area code within country count: count of available DIDs for purchasing

403 error indicates disabled API calls for purchase.

Example:

{ "cities": [ { "id": 118557, "name": "Ottawa-Hull, ON", "area_code": "613800", "count": 81 } ] }
list_dids_in_country_city

List of available DID in a city of a country

Args: country_id: ID of country for search city_id: ID of city in a country sms_enabled: search for DID with SMS functionality page: page of result starting with 1 per_page: how many results should be on per page

Returns a JSON object with available DIDs where: dids: Array of DID available for purchasing where: id: ID of DID country: Country name city: City name sms_enabled: Is number capable of receiving SMS channels: How many parallel channels have DID free_min: How many free minutes per month DID have activation: Activation cost for DID in USD monthly: Monthly fee for DID per_minute: Per minute cost for DID origination_per_min: per minute cost if origin based rate applied required_documents: required documents for activating number, where: 1 = Any form of ID 2 = Proof of address 3 = Proof of local address number: DID Number in E164 format pagination: Pagination details for results page: current page of results total_pages: total pages results total: total query records

403 error indicates disabled API calls for purchase.

Example:

{ "dids": { "pagination": { "total": 52, "total_pages": 1, "current_page": 1 }, "dids": [ { "id": 112370, "country": "Canada", "city": "Edmonton, AB", "sms_enabled": false, "no_local_cli": false, "channels": 4, "free_min": 0, "cnam": null, "activation": 1.0, "monthly": 1.0, "per_minute": 0.01, "origination_per_min": null, "required_documents": [], "state": "Alberta", "country_short_name": "CA", "number": "17806999999" } ] } }
purchase_did

Purchase DID from DIDLogic

Args: number: DID number for purchase in E164 format

Returns a JSON object with purchased DID details where: errors: Errors what happened in purchase process purchases: Array of purchased dids where: id: ID of purchased DID number: number of DID country: Country name area: City name sms_enabled: Is number capable of receiving SMS channels: How many parallel channels have DID free_minutes: How many free minutes per month DID have activation: Activation cost for DID in USD monthly_fee: Monthly fee for DID per_minute: Per minute cost for DID origination_per_min: per minute cost if origin based rate applied requir_docs: required documents for activating number, where: 1 = Any form of ID 2 = Proof of address 3 = Proof of local address codec: what SIP codec is preferred for this number

Example:

{ "purchase": { "errors": {}, "purchases": [ { "id": 728070, "number": "17806999999", "sms_enabled": false, "no_local_cli": false, "channels": 4, "country": "Canada", "area": "Edmonton, AB", "free_minutes": 0, "codec": "G711", "require_docs": "", "activation": 1.0, "monthly_fee": 1.0, "per_minute": 0.01, "origination_per_min": 0.0 } ] } }
remove_purchased_did

Remove DID from DIDLogic account

Args: number: DID number for removing in E164 format

Returns a JSON object with removed DID details where: dids: Array of removed dids where: id: ID of purchased DID number: number of DID country: Country name area: City name sms_enabled: Is number capable of receiving SMS channels: How many parallel channels have DID free_minutes: How many free minutes per month DID have activation: Activation cost for DID in USD monthly_fee: Monthly fee for DID per_minute: Per minute cost for DID origination_per_min: per minute cost if origin based rate applied requir_docs: required documents for activating number, where: 1 = Any form of ID 2 = Proof of address 3 = Proof of local address codec: what SIP codec is preferred for this number

Example:

{ "dids": [ { "id": 728070, "number": "17806999999", "sms_enabled": false, "no_local_cli": false, "channels": 4, "country": "Canada", "area": "Edmonton, AB", "free_minutes": 0, "codec": "G711", "require_docs": "", "activation": 1.0, "monthly_fee": 1.0, "per_minute": 0.01, "origination_per_min": 0.0 } ] }
get_call_history

Query Call history in DIDlogic

Args: call_type: Type of call history items where: sip = outbound sip calls incoming = inbound calls to DID from_date: Date to search from, should be in YYYY-MM-DD format to_date: Date to search to, should be in YYYY-MM-DD format number: Number to search for incoming calls sip_account: SIP account name to search for outbound calls from_search: Number from whom was the call to_search: Number to what was the call page: page of result starting with 1 per_page: how many results should be on per page

Returns a JSON object with a call history results where: calls: array of call history objects where: timestamp: date of the call type: call type where: sip = outbound sip call incoming = inbound call to DID amount: charge for this call in USD duration: duration of call in seconds from: from number for this call to: to number which this call was made destination_name: destination network name for this call sip_account: SIP account name for outbound SIP calls pagination: Pagination details for results page: current page of results per_page: results per page total_pages: total pages results total_records: total query records (maximum 5000)

Example response:

{ "calls": [ { "timestamp": "2024-11-20T13:29:19Z", "type": "sip", "amount": 0.02, "duration": 0, "from": """ <1212123123>", "to": "1555123123", "destination_name": "United States - NOT EXISTED", "sip_account": "12345" } ], "pagination": { "page": 1, "per_page": 100, "total_pages": 50, "total_records": 5000 } }
get_transactions

Load transaction history from DIDLogic

Args: transaction_type: Type of transaction to search where: adjustment = Adjustments made by DIDLogic finances activation = Activation payments for DID month = Monthly payments for DID paypal_in = Paypal TopUps call = Per minute charges for inbound calls call_fix_fee = Per minute charges for PSTN DID destinations sms = SMS charges inbound_sms = Inbound SMS charges cc_in = Credit card TopUps stripe_in = Stripe express payments TopUps porting = Porting Fees start_date: Search start date in format YYYY-MM-DD end_date: Search end date in format YYYY-MM-DD

Returns a CSV table of transactions where: Date: Date of transaction Time: Time of transaction Transaction type: Type of transaction Comment: Comment for transaction Amount: Transaction Amount Balance: Balance after transaction creation Status: Transaction status where: Confirmed = transaction confirmed but not commited yet Committed = transaction settled Rejected = transaction reverted back

Example:

Date,Time,Transaction type,Comment,Amount,Balance,Status 01/05/25,06:00 am,Monthly fees,Monthly fee for 18565999999,$-0.9900,$16.1273,Committed

Prompts

Interactive templates invoked by user choice

NameDescription
check_balanceCheck the current account balance
delete_sipaccountHelp user delete sipaccount
list_all_sipaccountsList all SIP accounts and their details
create_new_sipaccountGuide the user through creating a new SIP account
enable_ip_restriction_for_sipaccountEnable IP restriction for selected SIP account
manage_allowed_ipsManage IP restrictions for a SIP account
update_sipaccountUpdates sipaccount settings
update_sipaccount_securityUpdate security settings for a SIP account

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/UserAd/didlogic_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server