dialin/main.py

43 lines
1.1 KiB
Python

from PySIP.sip_account import SipAccount
from PySIP.sip_call import SipCall
import os
import asyncio
from dotenv import load_dotenv
import logging
# Load SIP credentials from .env file
load_dotenv()
try:
if len(os.environ["SIP_CONN_TYPE"]) < 1:
os.environ["SIP_CONN_TYPE"] = "AUTO"
except:
os.environ["SIP_CONN_TYPE"] = "AUTO"
account = SipAccount(
os.environ["SIP_USERNAME"],
os.environ["SIP_PASSWORD"],
os.environ["SIP_SERVER"],
connection_type = os.environ["SIP_CONN_TYPE"]
)
async def main():
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
await account.register()
@account.on_incoming_call
async def handle_incoming_call(call: SipCall):
print("incoming call!")
await call.accept() # or call.reject() or call.busy()
await call.call_handler.say("Thank you for calling us!")
await call.call_handler.hangup()
loop = 0
while True:
await asyncio.sleep(60)
loop = loop + 1
logger.log(logging.INFO, f"Hey, we've been running for {loop} minutes...just so you know.")
if __name__ == "__main__":
asyncio.run(main())